Thursday, June 26, 2014

WEBLOGIC JMS: "The persistent file store", "cannot open file"

It is well known that the way to have a persistence store on you JMS Configuration is a good habit on your development mainly if we are talking about of Cluster Enviroment, having a configuration with dat file sored on a filesystem is done by doing asignation on your JMS Server, but what-if something happen with DAT file, perhaps you could even imagine a situation can produce this event, for example a bad configuration throught a unknown familiar user on your server, a kind of application trying to access to DAT file, there some situations could happend, on my experience i have list some specific expection related above:

  • The persistence store ... Cannot open file ...
  • Cannot find ... DAT File
  • GXA... read exception

If you are on this kind of situation my advice to you should please make a backup of your persistence store and follow the next steps:

1. BackUp Persistence Store  on a new folder under your filesystem
2. Delete Components on your weblogic likes: Module JMS, Server JMS and Persistence Store.
3. Shutdown all servers involver, including adminserver
4. Start All Servers, please be sure that no one could have any failed exception related.
5. Make your JMS Configuration Again.
6. Most common problems may be resolve by doing this, if there is another problem by creating a JMS Server please try to change the type of writing to save with cache and File locked to false, this is because the time of saving to DAT probably do a mess with another process.

Please take care about situation likes because someone or something on your operating system try to do a connection  with your DAT file.

Best Regards,

Monday, June 9, 2014

Back-Up FileStore of a JMS Weblogic Configuration

Main reasons you could be benefits of doing this, are a backup, delete, compress or replace .dat file.

  • Shutdown servers, cluster, nodeManager  or coherence (cluster or server) who is occupied the JMS Configuration.

  • Having access as a root or weblogic user, you  should execute the following script  shell:

  1. setWLSEnv.sh: Located on  /opt/weblogic/XXXX/wlserver_10.3/server/bin or wherever is installed weblogic, maybe /root/Oracle/wlserver_10.3/server/bin is another possible location.
  2. wlst.sh: Located on  /opt/weblogic/XXXX/wlserver_10.3/common/bin or wherever is installed weblogic, maybe /root/Oracle/wlserver_10.3/common/bin is another possible location.
  • Now, what we have just done?, well setWLSEnv.sh configure on your enviroment several jar  that are part of the neccesary running to calling method or classes for doing changes in weblogic without a web console, at the last one is a script which is necessary for doing python/ironpython o command execution,

  • After running wlst.sh, you will have a prompt just like this:  wls:/offline> with the weblogic password, user and ip/port the possibilites are unlimted to whatever your imagination could do.

  1. Execute: 
wls:/offline> compactstore('<LOCATION_FILESTOREORIGINAL>','<LOCATION_COPYONFAIL>')
  •  Depends on your dat size is the time that you will be waiting, may I say that for a 5 files amout of 2GB takes me about 1 hour, please waiting after the execution is complete.

  1. In your LOCATION_FILESTOREORIGINAL(ex:/root/jms/filestore) you must a found a compressend file, in my case the size reduce about a 20% per file. 
  2. In your LOCATION_COPYONFAIL(ex:/root/jms/backup), you must found the original file with the same size of the original file.

Now, what we have in mind?, perhaps you could limite the size of  your persistence store in the way that you could make a backup for auditing process as I said this could be benifit for each part of development.

Best regards,