Transactions in Weblogic 5.1
Hi there,
I'm fiddling a bit with transactions in Weblogic 5.1, and I might have
misunderstood a few things, 'cause it seems like Weblogic is not doing
the right thing.
I have this entity bean that does not do any database connects, in fact
it does not use any TX resources, but I'd like to serialize access to it
anyway - and I had the impression that the Weblogic server could do this
for me. Having the entity bean deployed with "Mandatory" transcation and
"Serializable" isolation level does however not give me the desired
result - I can hold the entity bean in multiple transaction contexts :-(
So for me it seems like Weblogic Server 5.1 does not do any transaction
serialization by itself, and documentation I have stumbled upon indicate
that the server relies on JDBC drivers and such to provide transaction
isolation. Seems like the entity bean itself is not considered a
TxResource whereas an underlying database connection is.
Am I right? -- if I am, does this mean that in order to serialize access
under transaction to an entity bean I must have data base access?
regards
Jakob
Hi Jacob,
Transaction isolation levels are ment for database transactions only..but the
transaction attributes not the same..you can apply
the transaction attributes to session bean which may not access db at alll
Thanks
Ramesh
Jakob Dalsgaard <[email protected]> wrote:
>Hi there,
>
>I'm fiddling a bit with transactions in Weblogic 5.1, and I might have
>
>misunderstood a few things, 'cause it seems like Weblogic is not doing
>
>the right thing.
>
>I have this entity bean that does not do any database connects, in fact
>
>it does not use any TX resources, but I'd like to serialize access to
>it
>anyway - and I had the impression that the Weblogic server could do this
>
>for me. Having the entity bean deployed with "Mandatory" transcation
>and
>"Serializable" isolation level does however not give me the desired
>result - I can hold the entity bean in multiple transaction contexts
>:-(
>
>So for me it seems like Weblogic Server 5.1 does not do any transaction
>
>serialization by itself, and documentation I have stumbled upon indicate
>
>that the server relies on JDBC drivers and such to provide transaction
>
>isolation. Seems like the entity bean itself is not considered a
>TxResource whereas an underlying database connection is.
>
>Am I right? -- if I am, does this mean that in order to serialize access
>
>under transaction to an entity bean I must have data base access?
>
>regards
>Jakob
>
Similar Messages
-
Hi,
I am using Coherence as a cache for my weblogic application. I use a Message Driven Bean that receive a message, write something in Coherence and then write an other message in a result queue.
I want all this operations to be fully transactional. To do this I try to use the Coherence Container Integration with JCA (see http://wiki.tangosol.com/display/COH33UG/Transactions%2C+Locks+and+Concurrency).
My first problem here is to install the rar file in weblogic. I try in weblogic version 10 and 8.1 (my coherence version is 3.2) and I got the following errors :
in version 8.1
<13 juin 2007 15 h 51 CEST> <Error> <Deployer> <BEA-149201> <Failed to complete the deployment task with ID 1 for the application coherence-tx.
java.lang.NoClassDefFoundError: com/tangosol/util/WrapperException
in version 10 :
weblogic.connector.exception.RAConfigurationException: There are 1 nested errors: weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND /mnt/appli/bestofbreed/bea/user_projects/domains/bob_domain/servers/srv1/stage/coherence-tx/coherence-tx.rar/META-INF/ra.xml:36:4:36:4: problem: cvc-enumeration-valid: string value 'boolean' is not a valid enumeration value for config-property-typeType in namespace http://java.sun.com/xml/ns/j2ee: at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:234) at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:208) at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:146) at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:292) at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:260) at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:322) at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:347) at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:331) at weblogic.application.descriptor.AbstractDescriptorLoader.getDescriptor(AbstractDescriptorLoader.java:240) at weblogic.application.descriptor.AbstractDescriptorLoader.getRootDescriptorBean(AbstractDescriptorLoader.java:220) at weblogic.connector.configuration.ConnectorDescriptor.getConnectorBean(ConnectorDescriptor.java:287) at weblogic.connector.configuration.DDUtil.getRAInfo(DDUtil.java:121) at weblogic.connector.deploy.ConnectorModule.loadDescriptors(ConnectorModule.java:747) at weblogic.connector.deploy.ConnectorModule.prepare(ConnectorModule.java:165) at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93) at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56) at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46) at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191) at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147) at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:189) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:87) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:719) at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1186) at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:157) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
Thanks,
LucHi William,
Are you sure this is correct? During the prepare phase I would have expected the
changes to have been made persistent (durable within the grid) but not immediately
visible on at least another node within the cluster assuming Coherence is using the
grid itself as a transaction log service.What I wrote is how the TransactionMap API documentation describes it.
I believe, the idea behind it is that the commit phase writes data to the underlying cache with putAll and removeAll operations which are supposed to be fail-safe and are not waiting for any other threads if the client owns the locks for the entries, even in case of cluster node failures.
With the transaction consistency and isolation verified in prepare() and all relevant locks owned, there is no transactional reason why the commit could fail. The only possible causes of failure are disastrous conditions or errors in write-through cache store operations preventing success of the putAll/remove operations (or coding errors in serialization/deserialization/indexed-methods).
If not then how would Coherence ensure the commit would be successfully executed
after a voting to commit during the prepare phase even in the event of a failure
occurring before commit. The TransactionMap 2PC is not supposed to be interleaved with other 2PC operations. It is supposed to work only above the Coherence caches (actually you can add one 1PC operation between the TransactionMap prepare()-s and TransactionMap commit()-s, if you implement CacheFactory.commitTransactionCollection manually).
Full XA is not supported over the caches by Coherence.
The XA-related stuff I mentioned is when you use the Coherence CacheAdapter to enlist Coherence caches under a JTA transaction. However in this case the caches together act as a 1PC resource (JCA LocalTransaction mode) from the JTA TransactionManager-s point of view and you do not see anything from it being internally 2PC.
In this case, the JTA transaction 2PC operation proceeds as follows:
1. All real XA resources enlisted to the JTA transaction are prepared. After this point all JDBC changes over an XA-driver JDBC connection are flushed to the database, so all locks to be acquired are acquired.
2. If all were prepared successfully, then the transactional caches enlisted under the JCA Adapter are committed together with code equivalent to CacheFactory.commitTransactionCollection(). The transactional caches are practically TransactionMap-s wrapped in two or three layer of wrapper objects.
3. If the CacheFactory.commitTransactionCollection() succeeded, then all the XA resources enlisted to the JTA transaction are committed. All JDBC locks are released only at this point.
Why I mentioned XA and locks and TRANSACTION_EXTERNAL in this thread at all is that if you modified equivalent entries in Coherence to what you modified in XA JDBC, then you don't in fact need to lock those entries in Coherence, because equivalent locks with a broader lifetime are existing in the database. TRANSACTION_EXTERNAL allows you to do just that.
Hope this clears this up, but feel free to ask if it does not.
Best regards,
Robert -
Distributed Transaction in weblogic 5.1
Hi all,
Does Weblogic 5.1 support Distributed Transactions?.While they aren't java-specific, if you're looking for XA/2PC details,
these 2 are good:
Transaction Processing: Concepts and Techniques (Morgan Kaufmann Series
in Data Management Systems)
by Jim Gray, Andreas Reuter
Principles of Transaction Processing
by Philip A. Bernstein, Eric Newcomer (Contributor)
5.1 does not support XA or 2 phase-commit. However, it does allow
multiple cluster members to enlist in the same transaction as long as
all database access goes through the same JDBC connection.
WLS 6.0 and later do support XA and 2PC.
-- Rob
chandrasekar wrote:
Hi all,
Does Weblogic 5.1 support Distributed Transactions?.Please suggest me some
books or documentation regarding Distributed Transactions, and about the XA compliant
resources. -
Transaction in Weblogic 5.1 Server
Hi All,
Can any one tell me How to set XA DataSource details in weblogic.properties
file in weblogic 5.1 server.
Thanx
Ramana Murthy
While they aren't java-specific, if you're looking for XA/2PC details,
these 2 are good:
Transaction Processing: Concepts and Techniques (Morgan Kaufmann Series
in Data Management Systems)
by Jim Gray, Andreas Reuter
Principles of Transaction Processing
by Philip A. Bernstein, Eric Newcomer (Contributor)
5.1 does not support XA or 2 phase-commit. However, it does allow
multiple cluster members to enlist in the same transaction as long as
all database access goes through the same JDBC connection.
WLS 6.0 and later do support XA and 2PC.
-- Rob
chandrasekar wrote:
Hi all,
Does Weblogic 5.1 support Distributed Transactions?.Please suggest me some
books or documentation regarding Distributed Transactions, and about the XA compliant
resources. -
XA transaction using weblogic.jdbc.oci.xa.XADataSource
Hi everyone, I am trying to execute XA transaction using the driver XA compatible
driver
weblogic.jdbc.oci.xa.XADataSource. I have added c:\bea7.0SP4
\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll in the PATH in my
weblogic managed server startup script.
When I start managed server, I get the error saying that weblogicoci38.dll
is not in java.library.path. I checked the server log file and in that
it clearly shows that java.library.path contains this file. Please suggest
me what to do.
I have weblogic 7.0 with SP4 and databse is oracle 8i.
thanks,
jyothi
####<Mar 1, 2004 9:52:36 AM EST> <Error> <JDBC> <temp1> <server1> <main> <kernel
identity> <> <001060> <Cannot startup connection pool "ConnPool1" java.sql.SQLException:
System.loadLibrary(weblogicoci38) threw java.lang.UnsatisfiedLinkError: no weblogicoci38
in java.library.path>
####<Mar 1, 2004 9:52:49 AM EST> <Info> <Management> <temp1> <server1> <main>
<kernel identity> <> <141187> <Java system properties are defined as follows:
awt.toolkit = sun.awt.windows.WToolkit
bea.home = c:\bea7.0SP4
file.encoding = Cp1252
file.encoding.pkg = sun.io
file.separator = \
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.awt.printerjob = sun.awt.windows.WPrinterJob
java.class.path = c:\bea7.0SP4\jdk131_08\lib\tools.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic_sp.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic.jar;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\parser.jar.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\xml4j_1_1_16.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\p6spy.jar
java.class.version = 47.0
java.ext.dirs = c:\bea7.0SP4\jdk131_08\jre\lib\ext
java.home = c:\bea7.0SP4\jdk131_08\jre
java.io.tmpdir = C:\DOCUME~1\jshanbag\LOCALS~1\Temp\
java.library.path = c:\bea7.0SP4\jdk131_08\bin;.;C:\WINNT\System32;C:\WINNT;.;c:\bea7.0SP4\weblogic700\server\bin;c:\bea7.0SP4\jdk131_08\bin;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;\jpda\bin;C:\Oracle\Ora81\bin;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\PROGRA~1\PVCS\VM\win32\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32\WBEM;c:\;c:\vslick\winjyothip wrote:
Hi everyone, I am trying to execute XA transaction using the driver XA compatible
driver
weblogic.jdbc.oci.xa.XADataSource. I have added c:\bea7.0SP4
\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll in the PATH in my
weblogic managed server startup script.
When I start managed server, I get the error saying that weblogicoci38.dll
is not in java.library.path. I checked the server log file and in that
it clearly shows that java.library.path contains this file. Please suggest
me what to do.Hi. This error message can be confusing for some OSes. If the process tries to
load a method from XYZ.DLL, and finds the DLL, but in order to load that method,
it finds it needs to also load ABC.DLL (such as the Oracle OCI DLL or the OS C libraries)
and doesn't find that lower-level DLL, the user can get a message mentioning only the
first (present) DLL. Please print out your full java.library.path. Does it correctly
list all the basing OS C libraries, and the Oracle Clint library path?
thanks,
Joe
>
I have weblogic 7.0 with SP4 and databse is oracle 8i.
thanks,
jyothi
####<Mar 1, 2004 9:52:36 AM EST> <Error> <JDBC> <temp1> <server1> <main> <kernel
identity> <> <001060> <Cannot startup connection pool "ConnPool1" java.sql.SQLException:
System.loadLibrary(weblogicoci38) threw java.lang.UnsatisfiedLinkError: no weblogicoci38
in java.library.path>
####<Mar 1, 2004 9:52:49 AM EST> <Info> <Management> <temp1> <server1> <main>
<kernel identity> <> <141187> <Java system properties are defined as follows:
awt.toolkit = sun.awt.windows.WToolkit
bea.home = c:\bea7.0SP4
file.encoding = Cp1252
file.encoding.pkg = sun.io
file.separator = \
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.awt.printerjob = sun.awt.windows.WPrinterJob
java.class.path = c:\bea7.0SP4\jdk131_08\lib\tools.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic_sp.jar;c:\bea7.0SP4\weblogic700\server\lib\weblogic.jar;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\parser.jar.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\lib\xml4j_1_1_16.jar;C:\bea7.0SP4\user_projects\jytDmnCluster\p6spy.jar
java.class.version = 47.0
java.ext.dirs = c:\bea7.0SP4\jdk131_08\jre\lib\ext
java.home = c:\bea7.0SP4\jdk131_08\jre
java.io.tmpdir = C:\DOCUME~1\jshanbag\LOCALS~1\Temp\
java.library.path = c:\bea7.0SP4\jdk131_08\bin;.;C:\WINNT\System32;C:\WINNT;.;c:\bea7.0SP4\weblogic700\server\bin;c:\bea7.0SP4\jdk131_08\bin;c:\bea7.0SP4\weblogic700\server\bin\ntvinv\oci817_8\weblogicoci38.dll;\jpda\bin;C:\Oracle\Ora81\bin;C:\Program
Files\Oracle\jre\1.1.7\bin;C:\PROGRA~1\PVCS\VM\win32\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32\WBEM;c:\;c:\vslick\win -
How to disable distributed transaction in Weblogic 8.1?
Hi I'm using WL8.1 running EJB. I wish to disable distributed transaction, whatever
that is. It is preventing me from doing and AutoCommit(true) in my database. Please
help. Thanks!
You cannot disable transactions if you are using entity EJBs but you can
get your connections from a non-TX DataSource (just define a regular
DataSource and not TXDataSource in your configuration) and then those
connections will not be transaction aware so you'll be able to do
setAutoCommit(true) in fact it might already be the default setting when
you get the connection.
Regards,
Dejan
Fred wrote:
>Hi I'm using WL8.1 running EJB. I wish to disable distributed transaction, whatever
>that is. It is preventing me from doing and AutoCommit(true) in my database. Please
>help. Thanks!
>
>
-
Peter: A question about XA transactions across weblogic servers
Peter,
I just read your article about "javax.transaction.HeuristicMixedException"
problem on WDJ.
In the article, you said this case applies to WLS 6.1.
I'd like to know does this applies to WLS 7.0?
If not, what is the mechanism in WLS7.0 to cope with such problem?
Thanks,
William
William,
The same arguments that I ran through in the article apply to WLS 7. The
solution is diferent, however since WLS 7 has no "system" user per se.
Take a look at http://edocs.bea.com/wls/docs70/adminguide/managetx.html#1050458
for the description of what you need to configure to get cross domain
transactions with WLS 7.0
Regards,
Peter.
william lee wrote:
> Peter,
>
> I just read your article about "javax.transaction.HeuristicMixedException"
> problem on WDJ.
> In the article, you said this case applies to WLS 6.1.
>
> I'd like to know does this applies to WLS 7.0?
>
> If not, what is the mechanism in WLS7.0 to cope with such problem?
>
> Thanks,
>
> William
>
>
>
-
Setting transaction isolation level in Weblogic 5.1
Hi,
I'm using Weblogic server5.1 and i'm trying to set the isolation level on one
of my session bean. Below is the code :
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>chargeMgr</ejb-name>
<jndi-name>chargeMgr</jndi-name>
<transaction-isolation>
<isolation-level>Serializable</isolation-level>
<method>
<ejb-name>chargeMgr</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
</transaction-isolation>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
I have checked the syntax against the weblogic documentation.
However, when i try to jar the beans up into the jar file (weblogic.ejbc), it
give me the following error :
org.xml.sax.SAXParseException: Element "weblogic-enterprise-bean" allows no further
input; "transaction-isolation" is not allowed.
Can anyone help?
Regards.
yes, only in weblogic-ejb-jar.xml , and you can see that from the DTD
source.
thanks
Yu
"cw lee" <[email protected]> wrote in message
news:[email protected]...
>
> thanks for ur advice.
>
> one thing i forgot to mention is that the isolation-level was specified in
weblogic-ejb-jar.xml.
> Do u mean that it must be placed in weblogic-cmp-rdbms-jar.xml and not
weblogic-ejb-jar.xml
> ?
>
> Are the codes u suggested to be in weblogic-ejb-jar.xml or
weblogic-cmp-rdbms-jar.xml
> ?
>
> Regards.
>
>
>
> "Yu Tian" <[email protected]> wrote:
> >the right name for Seriealizable should be: TRANSACTION_SERIALIZABLE.
> >so the
> >DD looks like:
> >
> ><?xml version="1.0"?>
> >
> ><!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic
> >5.1.0
> >EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
> >
> ><weblogic-ejb-jar>
> > <weblogic-enterprise-bean>
> > <ejb-name>containerManaged</ejb-name>
> > <caching-descriptor>
> > <max-beans-in-cache>1000</max-beans-in-cache>
> > </caching-descriptor>
> > <persistence-descriptor>
> > <persistence-type>
> > <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
> > <type-version>5.1.0</type-version>
> > <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
> > </persistence-type>
> > <persistence-use>
> > <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
> > <type-version>5.1.0</type-version>
> > </persistence-use>
> > </persistence-descriptor>
> > <jndi-name>containerManaged.AccountHome</jndi-name>
> > <transaction-isolation>
> > <isolation-level>TRANSACTION_SERIALIZABLE</isolation-level>
> > <method>
> > <ejb-name>containerManaged</ejb-name>
> > <method-name>*</method-name>
> > </method>
> > </transaction-isolation>
> > </weblogic-enterprise-bean>
> > </weblogic-ejb-jar>
> >
> >Thanks
> >
> >Yu
> >
> >
> >"cw lee" <[email protected]> wrote in message
> >news:[email protected]...
> >>
> >> Hi,
> >>
> >> I'm using Weblogic server5.1 and i'm trying to set the isolation level
> >on
> >one
> >> of my session bean. Below is the code :
> >>
> >> <weblogic-ejb-jar>
> >> <weblogic-enterprise-bean>
> >> <ejb-name>chargeMgr</ejb-name>
> >> <jndi-name>chargeMgr</jndi-name>
> >> <transaction-isolation>
> >> <isolation-level>Serializable</isolation-level>
> >> <method>
> >> <ejb-name>chargeMgr</ejb-name>
> >> <method-intf>Remote</method-intf>
> >> <method-name>*</method-name>
> >> </method>
> >> </transaction-isolation>
> >> </weblogic-enterprise-bean>
> >> </weblogic-ejb-jar>
> >>
> >> I have checked the syntax against the weblogic documentation.
> >> However, when i try to jar the beans up into the jar file
(weblogic.ejbc),
> >it
> >> give me the following error :
> >>
> >> org.xml.sax.SAXParseException: Element "weblogic-enterprise-bean"
allows
> >no further
> >> input; "transaction-isolation" is not allowed.
> >>
> >> Can anyone help?
> >>
> >> Regards.
> >>
> >
> >
>
-
Mqseries and weblogic: XA transactions with MessagingBridge
Hello.
Due to usage of XA transaction with MQSeries on host rather that weblogic host, require Extended Transactional Client - i have tried to use MessagingBridge feature in weblogic8.1.
So, when we send message to JMS queue (source destination for messaging bridge) in transactional context it will be forwarded to MQSeries destination only after commit transaction. And if transaction will be crashed, MessagingBridge will not forward message from JMS to MQSeries.
It is good substitution for XA transactions with MQSeries, i hope.
In config.xml it looks like
<BridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDIXA"
Name="mq_q_xa_bridgeQueue" Properties="DestinationJNDI=TEST2;DestinationType=Queue;ConnectionURL=file:/c:/jndidir;InitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory;ConnectionFactoryJNDI=QCF2"/>
<JMSBridgeDestination
ConnectionFactoryJNDIName="thqueueconnectionfactory"
DestinationJNDIName="bridgequeue" Name="THbridgequeue"/>
<MessagingBridge AsyncEnabled="false" Name="wls2mqXA"
QOSDegradationAllowed="false" QualityOfService="Exactly-once"
SourceDestination="THbridgequeue" Started="true"
TargetDestination="mq_q_xa_bridgeQueue" Targets="cgServer"/>
And this implementation of XA transaction in weblogic+mqseries work.
Does it have any bugs or hole or another disadvantages?
Thanks.
btw, i have found some interesting product at https://jmsbridgesxa.projects.dev2dev.bea.com/.
But it not works on my environment (weblogic and mqseries on different hosts)Hello.
Due to usage of XA transaction with MQSeries on host rather that weblogic host, require Extended Transactional Client - i have tried to use MessagingBridge feature in weblogic8.1.
So, when we send message to JMS queue (source destination for messaging bridge) in transactional context it will be forwarded to MQSeries destination only after commit transaction. And if transaction will be crashed, MessagingBridge will not forward message from JMS to MQSeries.
It is good substitution for XA transactions with MQSeries, i hope.
In config.xml it looks like
<BridgeDestination
AdapterJNDIName="eis.jms.WLSConnectionFactoryJNDIXA"
Name="mq_q_xa_bridgeQueue" Properties="DestinationJNDI=TEST2;DestinationType=Queue;ConnectionURL=file:/c:/jndidir;InitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory;ConnectionFactoryJNDI=QCF2"/>
<JMSBridgeDestination
ConnectionFactoryJNDIName="thqueueconnectionfactory"
DestinationJNDIName="bridgequeue" Name="THbridgequeue"/>
<MessagingBridge AsyncEnabled="false" Name="wls2mqXA"
QOSDegradationAllowed="false" QualityOfService="Exactly-once"
SourceDestination="THbridgequeue" Started="true"
TargetDestination="mq_q_xa_bridgeQueue" Targets="cgServer"/>
And this implementation of XA transaction in weblogic+mqseries work.
Does it have any bugs or hole or another disadvantages?
Thanks.
btw, i have found some interesting product at https://jmsbridgesxa.projects.dev2dev.bea.com/.
But it not works on my environment (weblogic and mqseries on different hosts) -
Configuring Weblogic's jDriver for Oracle to use in distributed transactions
Here is some errata to the instructions at "Configuring XA JDBC drivers" section of the online beta documentation:
http://www.weblogic.com/docs60/adminguide/managetx.html#1041268
The sample JDBC connection pool using Weblogic jDriver for Oracle should be:
<JDBCConnectionPool
Name="fundsXferAppPool"
Targets="myserver"
URL="jdbc:weblogic:oracle:localdb"
DriverName="weblogic.jdbc.oci.xa.XADataSource"
InitialCapacity="0"
MaxCapacity="5"
CapacityIncrement="1"
Properties="user=scott;password=tiger;server=localdb;rmid=0"
/>
<JDBCTxDataSource
Name="fundsXferDataSource"
Targets="myserver,server1"
JNDIName="myapp.fundsXfer"
PoolName="fundsXferAppPool"
/>
Here is an example of an additional XA connection pool for a second database instance:
<JDBCConnectionPool
Name="fundsXferAppPool2"
Targets="myserver"
URL="jdbc:weblogic:oracle:localdb2"
DriverName="weblogic.jdbc.oci.xa.XADataSource"
InitialCapacity="0"
MaxCapacity="5"
CapacityIncrement="1"
Properties="user=scott;password=tiger;server=localdb2;rmid=1"
/>
<JDBCTxDataSource
Name="fundsXferDataSource2"
Targets="myserver,server1"
JNDIName="myapp.fundsXfer2"
PoolName="fundsXferAppPool2"
/>
Please note the different "rmid" values for the 2 different database instances. Note also that the above sample only applies for Beta 1. Instructions may change in the future for Beta 2.
Also, all the names of the data source properties shown in "Table 8-2 Data Source Properties for WebLogic jDriver for Oracle" should start with lower case.
The Beta 1 online documentation will soon be updated to reflect the above. Our apologies for any inconvenience caused.
-- Priscilla Fung, BEA Systems, Inc.
Thanks
Mark
"Sree Bodapati" <[email protected]> wrote:
>Hi Mark,
>
>Yes you need 8.1.6 DB Server or higher for WebLogic's jDriver for Oracle/XA
>as well.
>
>/
>sree
>
>
>"Mark Cordobal" <[email protected]> wrote in message
>news:[email protected]..
>>
>> I read that XA features require version Oracle8i release 8.1.6 or later
>of
>the Oracle
>> server.
>> Does this apply only to Oracle JDBC drivers (which implement 2pc on top
>of
>JAVA_XA
>> package) or also to Weblogic's jDriver for Oracle/XA ?
>> I mean, if I have two Oracle 8.06 (or however < 8.1.6) jdbc Resource
>Manager, can
>> I implement (wlserver 6.1sp2) a distributed xa transaction using
>Weblogic's jDriver
>> for Oracle/XA ?
>> Or is it (jdriver) built also on top of JAVA_XA package, and so the db
>server XA
>> compliancy is a must ?
>>
>> Thanks in advance
>>
>> Mark
>
>
-
Migrated from weblogic 8.1 to 10.2. Issue with Message center transactions
we recently migrated from webloguc 8.1 to weblogic 10.2. When mesasage center is accessed, we are getting below exception. It is working fine in weblogic 8.1 .
<Name=[EJB AccountServicesBean.submitAddressChangeRequest(AccountServicesInfo,java.lang.String,java.lang.String)],
Xid=BEA1-0310676F13BEAC935370(464474497),Status=Rolled back.
[Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 60 seconds
BEA1-0310676F13BEAC935370],HeuristicErrorCode=XA_HEURHAZ,numRepliesOwedMe=0,numRepliesOwedOthers=0,
seconds since begin=131,seconds left=60,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=
(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=rolledback,assigned=managed4),
xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@1baf6254,re-Registered = false),
SCInfo[admin+managed4]=(state=rolledback),SCInfo[server_2+server_2_managed2]=(state=rolledback),
properties=({weblogic.transaction.name=
[EJB AccountServicesBean.submitAddressChangeRequest(AccountServicesInfo,java.lang.String,java.lang.String)],
START_AND_END_THREAD_EQUAL=false, weblogic.jdbc=t3://myserver.com}),
OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=
(CoordinatorURL=managed4+myserver.com+admin+t3+,
XAResources={WSATGatewayRM_managed4_admin, weblogic.jdbc.wrapper.JTSXAResourceImpl,
WLStore_admin__WLS_managed4},NonXAResources={})],
CoordinatorURL=managed4+myserver.com+admin+t3+) completed heuristically:
(weblogic.jdbc.wrapper.JTSXAResourceImpl, HeuristicHazard, (javax.transaction.xa.XAException:
No connection associated with
xid = BEA1-0310676F13BEAC935370-7765626C6F6769632E6A6462632E777261707065722E4A545358415265736F75726365496D706C)) >
Please help us in resolving it.Hi,
A general rule to follow is to make sure that WebLogic Server JTA timeout (either global, specific to an EJB or for individual transactions) is set to a lower value than the shortest timeout value configured/set for a participating XA resource (e.g., XA Transaction Timeout for Oracle XA JDBC connections). Not doing so can lead to an unexpected and inconsistent distributed transaction outcome, i.e., a participating XA Resource timing out before WebLogic Server JTA as the distributed transaction coordinator. The timed out XA Resource may take action to resolve its own part of the distributed transaction before WebLogic Server can take action. This will lead to heuristic error messages at the time when the WebLogic transaction manager tries to prepare/commit the distributed transaction.
The solution was for the JDBC Connection Pools to set the XASetTransactionTimeout to true and XATransactionTimeout to zero. When this parameter is set to zero, the XAResource Session Timeout will be set to the global transaction timeout.
Regards,
Kal -
Weblogic Intergration / transaction mode / Sybase
We are using Weblogic 8.1 to integrate a couple of DBMS's. A fact is that we can't change anything in these DBMS's, they are like blackboxes to us. As far as I could discover in the documentation of Weblogic, a distributed transaction uses the Autocommit-mode set to false, indicating a chained transaction mode, starting automatically a transaction on issueing the first DML statement in the database.
One of the DBMS's is Sybase Adaptive Server 12.5. We are using some stored procedures in this DBMS, which were created in the standard mode, i.e. 'unchained' transaction mode which translates to Autocommit set to true.
On running our application, of course, Sybase throws an error, indicating that a stored procedure created in unchained mode cannot be executed in an chained transaction.
Well, theoratically, we could change the transaction mode of the stored procedures to 'chained', with the 'chained' or anymode' option on sp_procxmode. But, practically, we can't do that due to business policies and this also shouldn't be needed, as we are using Weblogic integration, which promotes INTEGRATING DBMS's and EIS's.
So, my question is: Is there an option to use a global, distributed transaction in Weblogic integration, that runs in an unchained transaction mode, thus, allowing us to integrate this Sybase DBMS in our application, without making changes to the DBMS.
Greetings,
Ivo WillemsenHello Ivo.
I'm having the same problem and I need to know if you were able to solve it.
Thanks. -
Error defining transaction-isolation at weblogic-ejb-jar.xml
Hi,
.. from WebLogic 5.1 reference:
(...) the top level elements in weblogic-ejb-jar.xml are as follows:
. description
. weblogic-version
. weblogic-enterprise-bean
. ejb-name
. caching-descriptor
. presistence-descriptor
. clustering-descriptor
. transaction-descriptor
. reference-descriptor
. enable-call-by-reference
. jndi-name
. TRANSACTION-ISOLATION
. security-role-assignment
this way i've appended a transaction isolation section immediatly after the jndi-name section
from my weblogic-ejb-jar.xml file to specify that all methods of my container-managed ejb
should use read-committed accesses to the database. But i've gotten the error message:
org.xml.sax.SAXParseException: Element "weblogic-enterprise-bean" allows no further input; "transaction-isolation" is not allowed.
during compilation time at parsing. Nowhere else in the weblogic-ejb-jar.xml i can put the
isolation transaction section without receiving some related parsing error. The same happens
trying to include such transaction section at ejb-jar.xml. I'm attaching both xml files. Should
anybody help me saying where that section should be described? And if it should be placed in
another file, why the documentation states for describing it at the weblogic-ejb-jar.xml?
[weblogic-ejb-jar.xml]That means that you do not have the SP6 in the service pack and it is using
the old DTD.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Ana Benites" <[email protected]> wrote in message
news:[email protected]...
>
Cameron,
hello.
When you say "<enterprise-bean>" block, you mean"<weblogic-enterprise-bean>"block, isn't it?
>
Because you recommend in your response exactly what i was doing in myweblogic-ejb-jar.xml,
>
that i had attached to my message when openning this discussion. I copyit again here:
>
My weblogic-ejb-jar.xml:
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
>
>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>cluster.ejb.TellerHome</ejb-name>
<caching-descriptor>
</caching-descriptor>
<enable-call-by-reference>False</enable-call-by-reference>
<jndi-name>cluster.ejb.TellerHome</jndi-name>
<transaction-isolation>
<isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
>
<method>
<ejb-name>cluster.ejb.TellerHome</ejb-name>
<method-name>*</method-name>
</method>
</transaction-isolation>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
...and this is resulting in the following parsing error during compiletime:
>
>
org.xml.sax.SAXParseException: Element "weblogic-enterprise-bean" allowsno further input; "transaction-isolation" is not allowed.
at com.sun.xml.parser.Parser.error(Parser.java:2775)
atcom.sun.xml.parser.ValidatingParser$ChildrenValidator.consume(ValidatingPars
er.java:306)
at com.sun.xml.parser.Parser.maybeElement(Parser.java:1280)
at com.sun.xml.parser.Parser.content(Parser.java:1498)
at com.sun.xml.parser.Parser.maybeElement(Parser.java:1399)
at com.sun.xml.parser.Parser.content(Parser.java:1498)
at com.sun.xml.parser.Parser.maybeElement(Parser.java:1399)
at com.sun.xml.parser.Parser.parseInternal(Parser.java:491)
at com.sun.xml.parser.Parser.parse(Parser.java:283)
at weblogic.xml.dom.SunDOMParser.getDocument(SunDOMParser.java:69)
at weblogic.xml.dom.DOMParser.getDocument(DOMParser.java:102)
atweblogic.ejb.deployment.dd.DescriptorLoader.<init>(DescriptorLoader.java:157
at weblogic.ejbc.runBody(ejbc.java, Compiled Code)
at weblogic.utils.compiler.Tool.run(Tool.java:80)
at weblogic.ejbc.main(ejbc.java:353)
Am i forgetting anything?
Thanks for your help
Ana.
"Cameron Purdy" <[email protected]> wrote:
Hi Ana,
Add to weblogic-ejb-jar.xml:
Inside each <enterprise-bean> block, add the following immediately before
the block closes:
<transaction-isolation>
<isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
<method>
<ejb-name></ejb-name>
<method-name>*</method-name>
</method>
</transaction-isolation>
The <ejb-name> value of the <method> block of the <transaction-isolation>
block must match the <ejb-name> value of the <enterprise-bean> block.
Please note the case sensitive nature of the values.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Ana Benites" <[email protected]> wrote in message
news:[email protected]...
Thanks for your attention Cameron,
from my WebLogic Console one can read
"WebLogic Build 5.1.0 Service Pack 6 09/20/2000 21:03:19#84511"
...because i was suspecting the problem was due to a lack of
applying
the service pack 6. But even
after that upgrade the parsing errors remain.
regards
Ana
"Cameron Purdy" <[email protected]> wrote:
Ana,
The 5.1 release did NOT support transaction isolation in the
weblogic-ejb-jar.xml file.
That feature was introduced in a service pack. What SP are you using?
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Ana Benites" <[email protected]> wrote in message
news:[email protected]...
Hi,
.. from WebLogic 5.1 reference:
(...) the top level elements in weblogic-ejb-jar.xml are as follows:
description
weblogic-version
weblogic-enterprise-bean
. ejb-name
. caching-descriptor
. presistence-descriptor
. clustering-descriptor
. transaction-descriptor
. reference-descriptor
. enable-call-by-reference
. jndi-name
. TRANSACTION-ISOLATION
security-role-assignment
this way i've appended a transaction isolation section immediatly
after
the jndi-name section
from my weblogic-ejb-jar.xml file to specify that all methods of mycontainer-managed ejb
should use read-committed accesses to the database. But i've gotten
the
error message:
org.xml.sax.SAXParseException: Element "weblogic-enterprise-bean"
allows
no further input; "transaction-isolation" is not allowed.
during compilation time at parsing. Nowhere else in theweblogic-ejb-jar.xml i can put the
isolation transaction section without receiving some related parsingerror. The same happens
trying to include such transaction section at ejb-jar.xml. I'm
attaching
both xml files. Should
anybody help me saying where that section should be described? And
if
it
should be placed in
another file, why the documentation states for describing it at theweblogic-ejb-jar.xml? -
NAMED_SEQUENCEs: The transaction is no longer active
Hi all,
I am currently trying to get Petstore 1.3.1 going on WLS 7.0.0.1 an got
into quite some trouble (btw, does anyone have experience with this
cofiguration?). After successful deployment in /application I tried the
"populate database" link on ~/petstore/index.jsp and got:
java.sql.SQLException: The transaction is no longer active (status = Committed). No further JDBC access is allowed within this transaction.
at weblogic.jdbc.jts.Connection.checkIfRolledBack(Connection.java:541)
at weblogic.jdbc.jts.ResultSet.close(ResultSet.java:293)
at weblogic.jdbc.rmi.internal.ResultSetImpl.close(ResultSetImpl.java:144)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:96)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:87)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResultSet(RDBMSPersistenceManager.java:1797)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResources(RDBMSPersistenceManager.java:1679)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.execGenKeyNamedSequenceTableUpdateAndQuery(RDBMSPersistenceManager.java:1489)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getNextGenKeyNamedSequenceTable(RDBMSPersistenceManager.java:1307)
at com.sun.j2ee.blueprints.address.ejb.AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.ejbCreate(AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.java:1723)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:737)
at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:716)
at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:182)
at com.sun.j2ee.blueprints.address.ejb.AddressEJB_fvu9sn_LocalHomeImpl.create(AddressEJB_fvu9sn_LocalHomeImpl.java:155)
at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator.createAddress(AddressPopulator.java:94) at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator.access$7(AddressPopulator.java)
at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator$1.create(AddressPopulator.java:73)
at com.sun.j2ee.blueprints.petstore.tools.populate.XMLDBHandler.endElement(XMLDBHandler.java:145)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:595)
at com.sun.j2ee.blueprints.petstore.tools.populate.XMLDBHandler.endElement(XMLDBHandler.java:158)
at weblogic.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1411)
at weblogic.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1613)
at weblogic.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1219)
at weblogic.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:396)
at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:1119)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:133)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.populate(PopulateServlet.java:162)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.doPost(PopulateServlet.java:118)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.doGet(PopulateServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:945)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:332)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:20)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.sun.j2ee.blueprints.signon.web.SignOnFilter.doFilter(SignOnFilter.java:151)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.sun.j2ee.blueprints.encodingfilter.web.EncodingFilter.doFilter(EncodingFilter.java:77)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5366)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:721)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3043)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2468)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
and similar traces for ContactInfo, CreditCard, Account, Profile, ...
I nevertheless get to the main screen of the Petstore as if everything
worked well. In fact, it seems like the DB got populated somewhat
correctly; only tbe named sequence tables are unchanged (btw: are the
named sequence tables expected to be auto-created with
create-default-dbms-tables enabled?). The strange thing is that every
correct row (in my case having the even IDs) is followd by an all (except the
odd numbered ID field) "NULL" row. This does not happen in all
...EJBTABLEs --- Address and ContactInfo for example are affected, but Profile
is not.
It seems as if ordering a rattlesnake would work well, even though more
of the same type of Execptions appear in the jdbc log. I suspect that the
trouble will start when the 10 cached ID are exhausted.
I just tried the Petstore 1.3 example provided with WLS 7.0.0.1 on a Linux
machine and WLS 7.0 on an NT machine andfound petty much the same
exception after enabling the jdbc log:
java.sql.SQLException: The transaction is no longer active (status = Committed). No further JDBC access is allowed within this transaction.
at weblogic.jdbc.jts.Connection.checkIfRolledBack(Connection.java:541)
at weblogic.jdbc.jts.ResultSet.close(ResultSet.java:293)
at weblogic.jdbc.rmi.internal.ResultSetImpl.close(ResultSetImpl.java:144)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:96)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:87)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResultSet(RDBMSPersistenceManager.java:1797)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResources(RDBMSPersistenceManager.java:1679)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.execGenKeyNamedSequenceTableUpdateAndQuery(RDBMSPersistenceManager.java:1489)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getNextGenKeyNamedSequenceTable(RDBMSPersistenceManager.java:1307)
at com.sun.j2ee.blueprints.po.address.ejb.AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.ejbCreate(AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.java:1755)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:737)
at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:716)
at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:182)
at com.sun.j2ee.blueprints.po.address.ejb.AddressEJB_fvu9sn_LocalHomeImpl.create(AddressEJB_fvu9sn_LocalHomeImpl.java:86)
at com.sun.j2ee.blueprints.po.purchaseorder.ejb.PurchaseOrderHelper.persistPoCMRInfo(PurchaseOrderHelper.java:116)
at com.sun.j2ee.blueprints.po.purchaseorder.ejb.PurchaseOrderHelper.persistPO(PurchaseOrderHelper.java:164) at com.sun.j2ee.blueprints.opc.ejb.MsgBean.doWork(MsgBean.java:103)
at com.sun.j2ee.blueprints.opc.ejb.MsgBean.onMessage(MsgBean.java:72)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:348)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:282)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:263)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2309)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2232)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
Is there a problem with my general setup maybe, or is this exception to
be ignored? Is that a known issue with Petstore 1.3/WLS7?
Kai
Tyson Norris wrote:
Hello -
We are attempting to use a design where a connection will remain in use over multiple
transactions.
Is there any way to get weblogic to allow this?No, at least not jts connections. Non-XA connections need our management to
ensure all the work gets committed or rolled back atomically. It doesn't
cost anything to always obtain jts connections in the context of the tx
they are needed.
Besides XA, you could get a plain non-transactional connection and do your
own jdbc commits/rollbacks...
Joe
>
We are currently experiencing the stack trace below, when a database read is
attempting to use the same connection as the previously committed tx.
Thanks for any advice.
Tyson
org.springframework.jdbc.UncategorizedSQLException: (HibernateAccessor): encountered
SQLException [The transaction is no longer active - status: 'Committed'. No further
JDBC access is allowed within this transaction.]; nested exception is java.sql.SQLException:
The transaction is no longer active - status: 'Committed'. No further JDBC access
is allowed within this transaction. java.sql.SQLException: The transaction is
no longer active - status: 'Committed'. No further JDBC access is allowed within
this transaction. at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.java:118)
at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.java:127)
at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:324) at weblogic.jdbc.wrapper.JTSConnection.prepareStatement(JTSConnection.java:426)
at com.benefitpoint.cmp.hibernate.AbstractDataManager$2.doInHibernate(AbstractDataManager.java:501)
at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:150)
at com.benefitpoint.cmp.hibernate.AbstractDataManager.execRawSqlPreparedStatement(AbstractDataManager.java:568)
at -
Hi all,
I am currently trying to get Petstore 1.3.1 going on WLS 7.0.0.1 an got
into quite som trouble (btw, does anyone have expereince with this
cofiguration?). After successful deployment in /application I tried the
"populate database" link on ~/petstore/index.jsp and got:
java.sql.SQLException: The transaction is no longer active (status = Committed). No further JDBC access is allowed within this transaction.
at weblogic.jdbc.jts.Connection.checkIfRolledBack(Connection.java:541)
at weblogic.jdbc.jts.ResultSet.close(ResultSet.java:293)
at weblogic.jdbc.rmi.internal.ResultSetImpl.close(ResultSetImpl.java:144)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:96)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:87)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResultSet(RDBMSPersistenceManager.java:1797)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResources(RDBMSPersistenceManager.java:1679)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.execGenKeyNamedSequenceTableUpdateAndQuery(RDBMSPersistenceManager.java:1489)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getNextGenKeyNamedSequenceTable(RDBMSPersistenceManager.java:1307)
at com.sun.j2ee.blueprints.address.ejb.AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.ejbCreate(AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.java:1723)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:737)
at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:716)
at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:182)
at com.sun.j2ee.blueprints.address.ejb.AddressEJB_fvu9sn_LocalHomeImpl.create(AddressEJB_fvu9sn_LocalHomeImpl.java:155)
at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator.createAddress(AddressPopulator.java:94) at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator.access$7(AddressPopulator.java)
at com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator$1.create(AddressPopulator.java:73)
at com.sun.j2ee.blueprints.petstore.tools.populate.XMLDBHandler.endElement(XMLDBHandler.java:145)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:595)
at com.sun.j2ee.blueprints.petstore.tools.populate.XMLDBHandler.endElement(XMLDBHandler.java:158)
at weblogic.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1411)
at weblogic.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1613)
at weblogic.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1219)
at weblogic.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:396)
at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:1119)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:133)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:371)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.populate(PopulateServlet.java:162)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.doPost(PopulateServlet.java:118)
at com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet.doGet(PopulateServlet.java:106)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:945)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:332)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:20)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.sun.j2ee.blueprints.signon.web.SignOnFilter.doFilter(SignOnFilter.java:151)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.sun.j2ee.blueprints.encodingfilter.web.EncodingFilter.doFilter(EncodingFilter.java:77)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5366)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:721)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3043)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2468)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
and similar traces for ContactInfo, CreditCard, Account, Profile, ...
I nevertheless get to the main screen of the Petstore as if everything
worked well. In fact, it seems like the DB got populated somewhat
correctly; only tbe named sequence tables are unchanged (btw: are the
named sequences expected to be auto-created with
create-default-dbms-tables enabled ?). The strange thing is that every
correct row (in my case having the even IDs) is followd by an all (except the
odd numbered ID field) "NULL" row. This does not happen in all
...EJBTABLEs --- Address and ContactInfo for example are affected, but Profile
is not.
It seems as if ordering a rattlesnake would work well, even though more
of the same type of Execptions appear in the jdbc log. I suspect that the
trouble will start when the 10 cached ID are exhausted.
Any ideas?
KaiI just tried the Petstore 1.3 example provided with WLS 7.0.0.1 and found
petty much the same exception after enabling the jdbc log:
java.sql.SQLException: The transaction is no longer active (status = Committed). No further JDBC access is allowed within this transaction.
at weblogic.jdbc.jts.Connection.checkIfRolledBack(Connection.java:541)
at weblogic.jdbc.jts.ResultSet.close(ResultSet.java:293)
at weblogic.jdbc.rmi.internal.ResultSetImpl.close(ResultSetImpl.java:144)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:96)
at weblogic.jdbc.rmi.SerialResultSet.close(SerialResultSet.java:87)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResultSet(RDBMSPersistenceManager.java:1797)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.releaseResources(RDBMSPersistenceManager.java:1679)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.execGenKeyNamedSequenceTableUpdateAndQuery(RDBMSPersistenceManager.java:1489)
at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getNextGenKeyNamedSequenceTable(RDBMSPersistenceManager.java:1307)
at com.sun.j2ee.blueprints.po.address.ejb.AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.ejbCreate(AddressEJB_fvu9sn__WebLogic_CMP_RDBMS.java:1755)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:737)
at weblogic.ejb20.manager.DBManager.localCreate(DBManager.java:716)
at weblogic.ejb20.internal.EntityEJBLocalHome.create(EntityEJBLocalHome.java:182)
at com.sun.j2ee.blueprints.po.address.ejb.AddressEJB_fvu9sn_LocalHomeImpl.create(AddressEJB_fvu9sn_LocalHomeImpl.java:86)
at com.sun.j2ee.blueprints.po.purchaseorder.ejb.PurchaseOrderHelper.persistPoCMRInfo(PurchaseOrderHelper.java:116)
at com.sun.j2ee.blueprints.po.purchaseorder.ejb.PurchaseOrderHelper.persistPO(PurchaseOrderHelper.java:164) at com.sun.j2ee.blueprints.opc.ejb.MsgBean.doWork(MsgBean.java:103)
at com.sun.j2ee.blueprints.opc.ejb.MsgBean.onMessage(MsgBean.java:72)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:348)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:282)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:263)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2309)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2232)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
Is there a problem with my general setup maybe, or is this exception to
be ignored?
Kai
Maybe you are looking for
-
Problem with startup and Finder
I'm having some slight issues when my MacBook starts up. First, over the last couple of days I've noticed it starts up about a minute slower than it used to. Also, on login, I briefly get a completely blue screen for a few seconds before my desktop p
-
Converting PDF's and accessing word online
I need support using adobe: converting a PDF document to word Accessing the online word copy
-
IPhone 5 Battery exchanging program
Hello everyone! I have got the iPhone 5 and checked by the serial number if it belongs to the battery exchanging program of Apple. It does. And now my question is: If I let the battery get exchanged, will Apple update the software? Because I do not w
-
Updating Snow Leopard Server Software on Dual Intel Mac Mini
I have a 2009 Mac Mini Dual Core 2.53 Intel with 4 gb Ram running as a server under 10.6.8 Max OSX Server. But I have never used the server capabilities and don't reallyneed them. The Boss, Wife, wants ITunes radio on it, but it won't work apparently
-
Tuxedo load balancing across system
Hi there, does bea tuxedo version 8 or above has feature like weblogic to configure load balancing/failover across multiple system? Thanks, Simon