Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Foreign JMS and XA

32 views
Skip to first unread message

Dmitri Maximovich

unread,
Mar 2, 2004, 4:39:56 PM3/2/04
to
Hi everybody,

Is anybody successfully using _remote_ IBM MQseries 5.3 server as
Foreign JMS in WLS 8.1sp2?
We're observing some strange behavior in this case. Here is our setup:

WLS and IBM MQ server deployed on separate boxes.
WLS version 8.1sp2 running on Windows 2000/Intel
IBM MQ version 5.3 running on Solaris/SPARC

We're using "WebSphere MQ classes for Java, version 5.303 - j5303-L030225"
and "WebSphere MQ Extended Transactional Client Feature, version 5.300 -
j5303-L030122"

MQ files added in WLS POST_CLASSPATH variable in WLS starup script.

Foreign JMS server configured in WLS via fscontext JNDI.

MDB bean deployed with Transaction attribute "Required".

Everything seems to work fine, if we're posting message to MQ queue MDB
receives it and process successfully (just print message content to the
console for now).

Problem: In WLS console, under Server->Monitoring->JTA->Monitor inflight
transactions we can constantly see one transaction enlisted for our MDB
bean with following details:

=====================================================
Transaction ID: BEA1-00DFC5EB4B7B7F28EDB9
Coordinator: mydomain+myserver
Name: JMSMessagePoller.xxx.xxx.MyMessageProcessorMdb
Status: Active
Seconds Active: 17
Resources:
weblogic.ejb20.JMSConnectionPoller.xxx.xxx.MyMessageProcessorMdb=started
Properties
(key=value):
weblogic.transaction.name=JMSMessagePoller.xxx.xxx.MyMessageProcessorMdb
=====================================================

This transaction seems to be Active for 30 seconds and then rolled back
(no error messages on WLS console displayed).On JTA statistics page in
WLS console "Total Rolled Back" counter keeps increneting with every
rollback.

Does anybody observerd similar problem? May be it's normal behaviour but
I'm kind of worrying about those transactions and constant rollback. I'd
appreciate any feedback.

---
Sincerely,
Dmitri Maximovich

Tom Barnes

unread,
Mar 3, 2004, 11:37:03 AM3/3/04
to Dmitri Maximovich
Hi Dmitri,

This is normal behavior.
The internal rollbacks are a side effect of WL MDBs
necessarily starting a transaction before they (internally)
post a synchronous
receive on the remote foreign JMS server. If the synchronous receive
receives nothing, the tx is rolled back, and another
synch receive is posted with a new tx. (When interacting with
foreign vendors, tx MDBs usually must post synchronous receives
in order to infect the received message - there is no
standard JMS API for infecting asynchronously received messages
with a user transaction.)

Tom

Dmitri Maximovich

unread,
Mar 3, 2004, 1:55:58 PM3/3/04
to
Hi Tom,

Thanks for info, that's a relief. Unfortunately there is no hints in WLS
documentation that it's normal, that's why we were worried about it.

Now there is one more issue, which I believe is related. You see with
those 'in-flight' transactions graceful shutdown of WLS doesn't quite
work. There is suspicious exception thrown and after that WLS is still
running in some state but console is not available anymore. Please see
console messages attached (sorry for long post). at the time of shutdown
there is no messages in the queue(s) so as far as I can tell those
'pending transactions' mentioned is those from foreign JMS wrappers.

I'd appreciate any comments on that. We have case opened with BEA about
this but so far they cannot reproduce it in their lab. That's why I
start wondering if we're doing something wrong here, like using remote
MQ server for example, may be you not supposed to (I remember there was
an issue before with IBM MQ that XA support required binding mode, I was
kind of hope that it's not the case anymore)?

<Mar 3, 2004 1:47:56 PM EST> <Notice> <WebLogicServer> <BEA-000365>
<Server state changed to SUSPENDING>
<Mar 3, 2004 1:47:56 PM EST> <Info> <Deployer> <BEA-149236> <Preparing
to suspend.>
<Mar 3, 2004 1:47:56 PM EST> <Info> <Deployer> <BEA-149237> <Ready to
suspend.>
<Mar 3, 2004 1:47:56 PM EST> <Info> <WebService> <BEA-220028> <Web
Service reliable agents are suspended.>
<Mar 3, 2004 1:47:56 PM EST> <Notice> <JTA> <BEA-110476> <The server has
detected pending transactions during graceful shutdown. The server will
wait for the pending transactions to complete before suspending the RMI
service. A force shutdown command can be issued to shutdown the server
immediately.>
<Mar 3, 2004 1:48:26 PM EST> <Info> <Management> <BEA-141080> <A request
has been received to force shut down of the server.>
<Mar 3, 2004 1:48:26 PM EST> <Alert> <WebLogicServer> <BEA-000228> <The
disabling of server logins has been requested by <WLS Kernel>>
<Mar 3, 2004 1:48:26 PM EST> <Alert> <WebLogicServer> <BEA-000229>
<Server logins have been disabled.>
<Mar 3, 2004 1:48:26 PM EST> <Info> <WebService> <BEA-220028> <Web
Service reliable agents are suspended.>
<Mar 3, 2004 1:48:26 PM EST> <Info> <EJB> <BEA-010084> <The
message-driven beans are being suspended. This may take a minute or two.>
<Mar 3, 2004 1:48:32 PM EST> <Info> <EJB> <BEA-010085> <The
message-driven beans have all been suspended.>
<Mar 3, 2004 1:48:32 PM EST> <Info> <EJB> <BEA-010084> <The
message-driven beans are being suspended. This may take a minute or two.>
<Mar 3, 2004 1:48:32 PM EST> <Info> <EJB> <BEA-010085> <The
message-driven beans have all been suspended.>
[MessageDrivenBeanPoolInfoImpl] : Couldn't unregister MBean
javax.management.InstanceNotFoundException:
mydomain:ApplicationRuntime=myserver_otis-dasl-ejb,EJBComponentRuntime=myserver_otis-dasl-ejb_otis-dasl-ejb.jar,Location=myserver,Name=myserver_otis-dasl-ejb_otis-dasl-ejb.jar_com.cibcwm.go.otis.dasl.submission.DASLSubmissionMdb_wls.mqs.dasl.dev.adp.reply3,ServerRuntime=myserver,Type=EJBTransactionRuntime
at
com.sun.management.jmx.MBeanServerImpl.getMBean(MBeanServerImpl.java:1680)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1524)
at
weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(RemoteMBeanServerImpl.java:947)
at
weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:908)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:946)
at
weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:481)
at
weblogic.management.runtime.EJBTransactionRuntimeMBean_Stub.preDeregister(EJBTransactionRuntimeMBean_Stub.java:433)
at
weblogic.management.internal.MBeanHomeImpl.internalDeleteMBean(MBeanHomeImpl.java:996)
at
weblogic.management.internal.MBeanHomeImpl.privateDeleteMBean(MBeanHomeImpl.java:982)
at
weblogic.management.internal.MBeanHomeImpl.access$000(MBeanHomeImpl.java:74)
at weblogic.management.internal.MBeanHomeImpl$2.run(MBeanHomeImpl.java:948)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.management.internal.MBeanHomeImpl.deleteMBeanWithKernelID(MBeanHomeImpl.java:944)
at
weblogic.management.internal.MBeanHomeImpl.deleteMBean(MBeanHomeImpl.java:939)
at
weblogic.management.internal.MBeanHomeImpl.deleteMBean(MBeanHomeImpl.java:933)
at
weblogic.management.runtime.RuntimeMBeanDelegate.unregister(RuntimeMBeanDelegate.java:140)
at
weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.unregisterDependents(EJBRuntimeMBeanImpl.java:58)
at
weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.unregisterDependents(MessageDrivenEJBRuntimeMBeanImpl.java:50)
at
weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.unInitPool(MessageDrivenBeanPoolInfoImpl.java:208)
at
weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.onUndeploy(MessageDrivenBeanPoolInfoImpl.java:121)
at
weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.onUndeploy(MessageDrivenBeanInfoImpl.java:628)
at weblogic.ejb20.internal.BaseEJBHome.undeploy(BaseEJBHome.java:203)
at
weblogic.ejb20.internal.MessageDrivenEJBHome.undeploy(MessageDrivenEJBHome.java:260)
at weblogic.ejb20.deployer.EJBDeployer.deactivate(EJBDeployer.java:1802)
at weblogic.ejb20.deployer.EJBModule.doDeactivate(EJBModule.java:865)
at weblogic.ejb20.deployer.EJBModule.deactivate(EJBModule.java:712)
at
weblogic.j2ee.J2EEApplicationContainer.deactivateModule(J2EEApplicationContainer.java:3161)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2186)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2131)
at
weblogic.j2ee.J2EEApplicationContainer.stop(J2EEApplicationContainer.java:1915)
at
weblogic.j2ee.J2EEApplicationContainerFactory.removeDeployedApplications(J2EEApplicationContainerFactory.java:761)
at
weblogic.j2ee.J2EEApplicationService.shutdown(J2EEApplicationService.java:115)
at
weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.shutdownHelper(DeploymentManagerServerLifeCycleImpl.java:257)
at
weblogic.application.ApplicationService.prepareToSuspend(ApplicationService.java:46)
at
weblogic.t3.srvr.SubsystemManager.prepareToSuspend(SubsystemManager.java:168)
at weblogic.t3.srvr.T3Srvr.prepareToSuspend(T3Srvr.java:1085)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.prepareToSuspend(ServerLifeCycleWorkerThread.java:51)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread$1.run(ServerLifeCycleWorkerThread.java:35)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.run(ServerLifeCycleWorkerThread.java:32)
--------------- nested within: ------------------
weblogic.management.ManagementException: An error has occurred during
preDeregister().
nullmydomain:ApplicationRuntime=myserver_otis-dasl-ejb,EJBComponentRuntime=myserver_otis-dasl-ejb_otis-dasl-ejb.jar,Location=myserver,Name=myserver_otis-dasl-ejb_otis-dasl-ejb.jar_com.cibcwm.go.otis.dasl.submission.DASLSubmissionMdb_wls.mqs.dasl.dev.adp.reply3,ServerRuntime=myserver,Type=EJBTransactionRuntime
- with nested exception:
[javax.management.InstanceNotFoundException:
mydomain:ApplicationRuntime=myserver_otis-dasl-ejb,EJBComponentRuntime=myserver_otis-dasl-ejb_otis-dasl-ejb.jar,Location=myserver,Name=myserver_otis-dasl-ejb_otis-dasl-ejb.jar_com.cibcwm.go.otis.dasl.submission.DASLSubmissionMdb_wls.mqs.dasl.dev.adp.reply3,ServerRuntime=myserver,Type=EJBTransactionRuntime]
at
weblogic.management.runtime.RuntimeMBeanDelegate.unregister(RuntimeMBeanDelegate.java:148)
at
weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.unregisterDependents(EJBRuntimeMBeanImpl.java:58)
at
weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.unregisterDependents(MessageDrivenEJBRuntimeMBeanImpl.java:50)
at
weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.unInitPool(MessageDrivenBeanPoolInfoImpl.java:208)
at
weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.onUndeploy(MessageDrivenBeanPoolInfoImpl.java:121)
at
weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.onUndeploy(MessageDrivenBeanInfoImpl.java:628)
at weblogic.ejb20.internal.BaseEJBHome.undeploy(BaseEJBHome.java:203)
at
weblogic.ejb20.internal.MessageDrivenEJBHome.undeploy(MessageDrivenEJBHome.java:260)
at weblogic.ejb20.deployer.EJBDeployer.deactivate(EJBDeployer.java:1802)
at weblogic.ejb20.deployer.EJBModule.doDeactivate(EJBModule.java:865)
at weblogic.ejb20.deployer.EJBModule.deactivate(EJBModule.java:712)
at
weblogic.j2ee.J2EEApplicationContainer.deactivateModule(J2EEApplicationContainer.java:3161)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2186)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2131)
at
weblogic.j2ee.J2EEApplicationContainer.stop(J2EEApplicationContainer.java:1915)
at
weblogic.j2ee.J2EEApplicationContainerFactory.removeDeployedApplications(J2EEApplicationContainerFactory.java:761)
at
weblogic.j2ee.J2EEApplicationService.shutdown(J2EEApplicationService.java:115)
at
weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.shutdownHelper(DeploymentManagerServerLifeCycleImpl.java:257)
at
weblogic.application.ApplicationService.prepareToSuspend(ApplicationService.java:46)
at
weblogic.t3.srvr.SubsystemManager.prepareToSuspend(SubsystemManager.java:168)
at weblogic.t3.srvr.T3Srvr.prepareToSuspend(T3Srvr.java:1085)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.prepareToSuspend(ServerLifeCycleWorkerThread.java:51)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread$1.run(ServerLifeCycleWorkerThread.java:35)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.run(ServerLifeCycleWorkerThread.java:32)
<Mar 3, 2004 1:48:33 PM EST> <Info> <Management> <BEA-141082>
<ServerRuntime:java.util.ConcurrentModificationException>
<Mar 3, 2004 1:48:33 PM EST> <Info> <Management> <BEA-141082>
<ServerRuntime:java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:552)
at java.util.LinkedList$ListItr.next(LinkedList.java:488)
at weblogic.ejb20.deployer.EJBDeployer.deactivate(EJBDeployer.java:1801)
at weblogic.ejb20.deployer.EJBModule.doDeactivate(EJBModule.java:865)
at weblogic.ejb20.deployer.EJBModule.deactivate(EJBModule.java:712)
at
weblogic.j2ee.J2EEApplicationContainer.deactivateModule(J2EEApplicationContainer.java:3161)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2186)
at
weblogic.j2ee.J2EEApplicationContainer.deactivate(J2EEApplicationContainer.java:2131)
at
weblogic.j2ee.J2EEApplicationContainer.stop(J2EEApplicationContainer.java:1915)
at
weblogic.j2ee.J2EEApplicationContainerFactory.removeDeployedApplications(J2EEApplicationContainerFactory.java:761)
at
weblogic.j2ee.J2EEApplicationService.shutdown(J2EEApplicationService.java:115)
at
weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.shutdownHelper(DeploymentManagerServerLifeCycleImpl.java:257)
at
weblogic.application.ApplicationService.prepareToSuspend(ApplicationService.java:46)
at
weblogic.t3.srvr.SubsystemManager.prepareToSuspend(SubsystemManager.java:168)
at weblogic.t3.srvr.T3Srvr.prepareToSuspend(T3Srvr.java:1085)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.prepareToSuspend(ServerLifeCycleWorkerThread.java:51)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread$1.run(ServerLifeCycleWorkerThread.java:35)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.t3.srvr.ServerLifeCycleWorkerThread.run(ServerLifeCycleWorkerThread.java:32)
>
<Mar 3, 2004 1:48:35 PM EST> <Critical> <WebLogicServer> <BEA-000217>
<Failed to fully suspend the server due to:
java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:782)
at java.util.HashMap$KeyIterator.next(HashMap.java:818)
at
weblogic.j2ee.J2EEApplicationContainerFactory.removeDeployedApplications(J2EEApplicationContainerFactory.java:751)
at
weblogic.j2ee.J2EEApplicationService.shutdown(J2EEApplicationService.java:115)
at
weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.shutdownHelper(DeploymentManagerServerLifeCycleImpl.java:257)
at
weblogic.application.ApplicationService.forceSuspend(ApplicationService.java:82)
at
weblogic.t3.srvr.SubsystemManager.forceSuspend(SubsystemManager.java:184)
at weblogic.t3.srvr.T3Srvr.forceSuspend(T3Srvr.java:1097)
at
weblogic.t3.srvr.ServerRuntime.uprotectedForceShutdown(ServerRuntime.java:629)
at weblogic.t3.srvr.ServerRuntime.access$300(ServerRuntime.java:83)
at weblogic.t3.srvr.ServerRuntime$4.run(ServerRuntime.java:563)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.t3.srvr.ServerRuntime.forceShutdown(ServerRuntime.java:559)
at weblogic.t3.srvr.ServerRuntime.shutdown(ServerRuntime.java:547)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:711)
at
weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:690)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at
weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(RemoteMBeanServerImpl.java:947)
at
weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:908)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:946)
at
weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:481)
at
weblogic.management.runtime.ServerRuntimeMBean_Stub.shutdown(ServerRuntimeMBean_Stub.java:1184)
at
weblogic.server.ServerLifeCycleRuntime$ShutdownRequest.execute(ServerLifeCycleRuntime.java:585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
<Mar 3, 2004 1:48:35 PM EST> <Debug> <Management> <BEA-141132> <Dynamic
invocation while executing action shutdown on
mydomain:Location=myserver,Name=myserver,Type=ServerRuntime MBean
instance failed. The method shutdown with signature [int, boolean] was
invoked with parameters as [30, true].
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:782)
at java.util.HashMap$KeyIterator.next(HashMap.java:818)
at
weblogic.j2ee.J2EEApplicationContainerFactory.removeDeployedApplications(J2EEApplicationContainerFactory.java:751)
at
weblogic.j2ee.J2EEApplicationService.shutdown(J2EEApplicationService.java:115)
at
weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.shutdownHelper(DeploymentManagerServerLifeCycleImpl.java:257)
at
weblogic.application.ApplicationService.forceSuspend(ApplicationService.java:82)
at
weblogic.t3.srvr.SubsystemManager.forceSuspend(SubsystemManager.java:184)
at weblogic.t3.srvr.T3Srvr.forceSuspend(T3Srvr.java:1097)
at
weblogic.t3.srvr.ServerRuntime.uprotectedForceShutdown(ServerRuntime.java:629)
at weblogic.t3.srvr.ServerRuntime.access$300(ServerRuntime.java:83)
at weblogic.t3.srvr.ServerRuntime$4.run(ServerRuntime.java:563)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.t3.srvr.ServerRuntime.forceShutdown(ServerRuntime.java:559)
at weblogic.t3.srvr.ServerRuntime.shutdown(ServerRuntime.java:547)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:711)
at
weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:690)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at
weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(RemoteMBeanServerImpl.java:947)
at
weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:908)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:946)
at
weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:481)
at
weblogic.management.runtime.ServerRuntimeMBean_Stub.shutdown(ServerRuntimeMBean_Stub.java:1184)
at
weblogic.server.ServerLifeCycleRuntime$ShutdownRequest.execute(ServerLifeCycleRuntime.java:585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

Tom Barnes

unread,
Mar 3, 2004, 3:56:37 PM3/3/04
to Dmitri Maximovich
Hi Dmitri,

The shutdown "suspend" failure has nothing to do with transactions
or JMS. It looks like the failure is due to a
java.util.ConcurrentModificationException during undeployment
which indicates a bug in WL - something is not getting
synchronized that should be.

As for MQ, their new extended client supports remote XA, which I think
is the reason for the product in the first place. Even so, I
still recommend testing to make sure that its messages
participate in transactions. (Actually, I recommend such testing
for any transactional app, including those built on WL JMS.)

Dmitri Maximovich

unread,
Mar 3, 2004, 4:05:49 PM3/3/04
to
Hi Tom,

Sure, we doing testing of transaction rollback. We're also running WLS
with debug parameters to see how resources participating in XA
transaction (enlisted, delisted, commit & rollback). So far everything
seems to work as it should. It's just that issue during shutdown that
attracted our attention, may be we're just being paranoid. :-) But you
know, you cannot be too cautious when it comes to distributed
transaction behavior. Anyway, thanks a lot for your feedback.

Tom Barnes wrote:

> Hi Dmitri,
>

0 new messages