on 03-13-2006 7:17 AM
We have a J2EE application, currently running in production on Weblogic 8.1, that I've been asked to port to SAP WebAS (v6.40 on HPUX). Briefly, the application includes the following technologies - Struts/JSP/Servlet, Hibernate, stateless session beans and message driven beans. With the exception of the MDBs, the application has been deployed and tested on WebAS.
Since configuring the JMS queues and attempting to test the MDBs I am no longer able to redeploy or undeploy the application. Either operation will change the application state to "stopping" and then hang indefinitely (it's been left running for around 8 hours).
We've attempted to remove it via the SDM GUI, Visual Administrator and Shell Console Administrator with the same behavior (server has been restarted after each attempt). I've scoured the server and SDM logs, but haven't seen any related messages.
My questions:
- are there any other approaches to remove/stop a J2EE application?
- is it possible to flag an application to not start after a server restart?
- are there any other logs we should check.
Thanks in advance,
Davin McGill.
Hi Davin,
Just wanted to suggest a possible cause about your problem - your MDB is using container managed transaction (that is the default I believe), however you are not using XA connection factory. The MDB and the undeploy wait for the commit /rollback event, which never comes.
Check your descriptors and switch from something like :
jmsfactory/default/QueueConnectionFactory
to
jmsfactory/default/XAQueueConnectionFactory
HTH
Peter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ivo - thanks for the tip, I'll give that a try.
Peter - it took me a while to get the deployment descriptors correct for the queues/factories, unfortunately I only have deploy access to the development environment and the administrators have little Java experience.
I ended up using the jms-factories and jms-destinations files to configure the queues and the first time I got it working was with the non-XA factory. When I tested one of the MDBs, it got an error indicating that it couldn't add a datasource to a local transaction so I switched to XA but am not certain I was able to deploy this change (about the time the deploy issue arose). I haven't seen this message after subsequent server bounces, so I assume the message was consumed.
I believe both XA and non-XA will work with a container managed transaction - non-XA just limits the resources that can be enlisted.
Thanks, Davin.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Davin,
I have some experience regarding JMS usage and its transactions, I think that it's not just a limitation for the enlistment. There is even a SAP note - 721295 that says "MDB transactional usage requires XA".
I think such change will solve your problem (blocking of undeploy of MDB).
HTH
Peter
Hi Davin,
strnage behavior indeed. Unfortunately, I know no other method to deploy an application in addition to what you already listed.
Concerning your second question below:
>> is it possible to flag an application to not start after a server restart?
To do that, you should use the <i>Initially_Not_Started_Apps</i> property of the Deploy Service. You should list your erroneous application name as a value of this property, and the application will not be started upon server startup. This could be a temporary workaround I guess. Otherwise, I'd suggest that you open an OSS message and report this problem.
Regards,
Ivo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.