cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot Undeploy J2EE EAR

Former Member
0 Kudos

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.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Answers (2)

Answers (2)

Former Member
0 Kudos

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.

Former Member
0 Kudos

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

Former Member
0 Kudos

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