How to set Transaction isolation level in Weblogic 11g
How do I set the transaction isolation level in Weblogic?
Some references that I found suggest that I have to explicitely state the isolation level in the weblogic-ejb-jar.xml per ejb. If I am using EJB 3.0 why would I need to do that?
Can I set this up as a property in the JDBC datasource setup?
Other application servers like Websphere actually allows for this. Can this be done in Weblogic?
Currently I get the following message if I don't set the isolation level:
Transaction attribute: TX_NOT_SUPPORTED Isolation Level: No Isolation Level Set Tx Timeout: 30000
What seems to be happening is that one update of my transaction is getting rolled back and other consequent calls are failing due to foreign key issues due to the first rollback.
I think the issue is related to the isolation level or the transaction time out being too low.
Any ideas?
BTW: I am using openjpa and using a MS SQLServer. Not sure if that helps the discussion.
Thanks
Edited by: rrivera on Jun 2, 2010 9:18 AM
How do I set the transaction isolation level in Weblogic?
Some references that I found suggest that I have to explicitely state the isolation level in the weblogic-ejb-jar.xml per ejb. If I am using EJB 3.0 why would I need to do that?
Can I set this up as a property in the JDBC datasource setup?
Other application servers like Websphere actually allows for this. Can this be done in Weblogic?
Currently I get the following message if I don't set the isolation level:
Transaction attribute: TX_NOT_SUPPORTED Isolation Level: No Isolation Level Set Tx Timeout: 30000
What seems to be happening is that one update of my transaction is getting rolled back and other consequent calls are failing due to foreign key issues due to the first rollback.
I think the issue is related to the isolation level or the transaction time out being too low.
Any ideas?
BTW: I am using openjpa and using a MS SQLServer. Not sure if that helps the discussion.
Thanks
Edited by: rrivera on Jun 2, 2010 9:18 AM
Similar Messages
-
How to set transaction isolation level for a method in a Local Interface
By reference at:
http://e-docs.bea.com/wls/docs61/ejb/reference.html#1071267,
the value for method-intf can only be "Remote" or "Home".
My question is--
How to set transaction isolation level for a method inside a Local Interface or
Local_Home Interface?
Thanks.
Xing
I'd try 6.1SP2. I'm pretty sure this works now.
-- Rob
Xing wrote:
> I tried "Local", but got an error when deploying the EJB jar, saying that only
> "Remote" or "Home" is allowed.
>
> Any idea?
>
> Xing
>
> Rob Woollen <[email protected]> wrote:
> >
> >
> >Use LocalHome or Local.
> >
> >-- Rob
> >
> >Xing wrote:
> >
> >> By reference at:
> >> http://e-docs.bea.com/wls/docs61/ejb/reference.html#1071267,
> >> the value for method-intf can only be "Remote" or "Home".
> >>
> >> My question is--
> >>
> >> How to set transaction isolation level for a method inside a Local
> >Interface or
> >> Local_Home Interface?
> >>
> >> Thanks.
> >>
> >> Xing
> >
> >--
> >
> >----------------------------------------------------------------------
> >
> >AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
> >
> >by Michael Girdley, Rob Woollen, and Sandra Emerson
> >
> >http://learnWebLogic.com
> >
> >
> >
> >
> ><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
> ><html>
> >Use LocalHome or Local.
> ><p>-- Rob
> ><p>Xing wrote:
> ><blockquote TYPE=CITE>By reference at:
> ><br>http://e-docs.bea.com/wls/docs61/ejb/reference.html#1071267,
> ><br>the value for method-intf can only be "Remote" or "Home".
> ><p>My question is--
> ><p>How to set transaction isolation level for a method inside a Local
> >Interface
> >or
> ><br>Local_Home Interface?
> ><p>Thanks.
> ><p>Xing</blockquote>
> >
> ><pre>--
> >
> >----------------------------------------------------------------------
> >
> >AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
> >
> >by Michael Girdley, Rob Woollen, and Sandra Emerson
> >
> >http://learnWebLogic.com</pre>
> > </html>
> >
> >
AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
by Michael Girdley, Rob Woollen, and Sandra Emerson
http://learnWebLogic.com
[att1.html]
-
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.
> >>
> >
> >
>
-
How to Set the Transaction Isolation Level in WebLogic?
Is there a way to set the transaction isolation level in WebLogic 9.2 or WebLogic 10?
For an example say, we have an application which is supported for several database platforms. Without setting the transaction isolation level in DBMS level, is there a way to specify this in WebLogic to make it common for all the DBMS type?
And I found a way to change the transaction isolation level in WebSphere application server using a property called webSphereDefaultIsolationLevel.
[url http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg21224492]http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg21224492
Is there a way to do the same thing in WebLogic application server 9.2 or 10?Anuradha W wrote:
That means, currently the only way tospecify the transaction level is through
weblogic-ejb-jar.xml deployment descriptor?
for WLS-generated code, yes.Somewhat related to this question, we have written a standalone testcase to reproduce this issue we have been having. Basically, the issue is that even though we configure the isolation level to a non-default one in the deployment descriptor, the connections returned by the datasource seem to be having the default (which is Read Committed). The DBMS is DB2.
weblogic-ejb-jar.xml has the following set:
<isolation-level>TransactionRepeatableRead</isolation-level>
And we printed the isolation level of the connection returned from a method in the EJB, but the isolation level is still the default. I can share the code to reproduce the problem if you want to take a look at it. Please let me know how I can get that across to you.
Thanks,
AnuradhaIf you are using our JDBC driver for DB2, or can switch to it,
just for a test, there is some debug I'd like from you.
Joe -
Setting transaction isolation level on a replicated server stored procedure
I have a SQL server that has replication turned onto to another server which is our reporting server. Replication is real-time (or close to it). On the report server I have a stored procedure that runs from a SRS report. My question is it possible or advisable
or does it even make sense to set the "SET TRANSACTION ISOLATION LEVEL READ COMMITTED" on at the beginning of the stored procedure which selects data from the reporting server database? Is it possible for uncommitted data on the OLTP side of the
house to be replicated before it is committed? We are having data issues with a report and have exhausted all options and was wondering if dirty data maybe the issue since the same parameters work for a report 1 sec and then next it doesnt.Only committed transactions are replicated to the subscriber. But it is possible for the report to see dirty data if running in READ UNCOMMITTED or NOLOCK. You should run your reports in READ COMMITTED or SNAPSHOT isolation , and your replication
subscriber should be configured with READ COMMITTED SNAPSHOT ISLOATION eg
alter database MySubscriber set allow_snapshot_isolation on;
alter database MySubscriber set read_committed_snapshot on;
as recommended here
Enhance General Replication Performance.
David
David http://blogs.msdn.com/b/dbrowne/ -
Setting transaction isolation levels in WAS5
I think I'm missing something pretty easy. How can I set the isolation
levels for the containter managed transactions on my beans?
Specifically, I want to set soem lookup methods on my Sessions beans
to TRANSACTION_REPEATABLE_READ. I've already put the
container-transaction blocks in my ejb-jar.xml
Does Websphere 5 have something akin to WebLogic's
weblogic-ejb-jar.xml where you can set additional parameters like
this? Do I have to use a tool like WSAD to specify this? The AAT
doesn't seem to have this option.
Thanks,
James LynnHi Slava, Ryan,
We haven't looked at 8.1 yet since our release cycle wouldn't allow us
to move to 8.1 until at least June anyway, but even if the problems was
fixed there it took BEA support more than 6 months (I opened the case on
Sep 23 2002 and only this week I got the patch that I haven't even tried
to test to see if it works) to issue a patch for such a small problem.
The server would just check if the Oracle XA driver was being used and
no matter what version would just throw an exception if you try to set
the transaction isolation level saying that the feature in the Oracle
8.1.7 driver was broken... (although you might be using 9.x or even a
pre-8.1.7 driver)...
So this is about it.
And Slava, I've tried pushing a case harder only to end up with BEA
support trying to convince me that I was misinterpreting the JDBC spec
when it was not true, so I just gave up. The main goal of BEA support in
all of our experience has been that they don't try to solve the cases
but close them.
That's my and some of my colleagues personal views anyway, you don't
have to share them.
Regards,
Dejan
Slava Imeshev wrote:
Hi Deyan,
Sorry for the delay. Could you give us more details about CR090104?
I've got some feedback in XA area, not sure if it was a related case.
Also, I've never had any problems with weblogic CCE, so you may want
to push your case a little harder.
As per the bold statement - the initial question was about functionality
available in weblogic but not available in websphere - it can't be more
bold :)
Regards,
Slava Imeshev
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]...
This is a very bold statement Slava, considering that with Oracle XA
driver you cannot even set the transaction isolation level because of a
Weblogic bug (CR090104 that has been open for more than 6 months
already)...
Dejan
Slava Imeshev wrote:
Hi James,
"James F'jord Lynn" <[email protected]> wrote in message
news:[email protected]...
I think I'm missing something pretty easy. How can I set the isolation
levels for the containter managed transactions on my beans?
Specifically, I want to set soem lookup methods on my Sessions beans
to TRANSACTION_REPEATABLE_READ. I've already put the
container-transaction blocks in my ejb-jar.xml
Does Websphere 5 have something akin to WebLogic's
weblogic-ejb-jar.xml where you can set additional parameters like
this? Do I have to use a tool like WSAD to specify this? The AAT
doesn't seem to have this option.
My guess here is that it's a signal that this is a last chance
for you to abandon WebSphere and return back to WebLogic's
safe harbor.
Regards,
Slava Imeshev -
Transaction Isolation Levels in weblogic-cmp-rdbms-jar.xml
Hi All,
Iam using ejb 1.1 specification with weblogic 5.1. We can set the transaction
isolation levels for the methods in the
weblogic-ejb-jar.xml. There is also a provision for setting this isolation level
in the weblogic-cmp-rdbms-jar.xml. Now is there any difference between setting
the isolation levels in these two ways.
Help me asap.The CMP setting has been deprecated. You can set it for all types of
EJBs in the weblogic-ejb-jar.xml
-- Rob
chandru wrote:
Hi All,
Iam using ejb 1.1 specification with weblogic 5.1. We can set the transaction
isolation levels for the methods in the
weblogic-ejb-jar.xml. There is also a provision for setting this isolation level
in the weblogic-cmp-rdbms-jar.xml. Now is there any difference between setting
the isolation levels in these two ways.
Help me asap. -
Setting transaction isolation level for jDriver Oracle/XA
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a
transaction and that 'Transactions use the transaction isolation level set on
the connection
or the default transaction isolation level for the database'. Does this mean that
you shouldn't try to set it programatically (fair enough) or that you can't set
it in the weblogic deployment descriptor either? Also anybody got any idea what
the default is likely to be if you are using
an Oracle 9iR2 database?Ian,
The default for Oracle (any version) is ReadCommitted. The only other
isolation level Oracle supports is Serializable but it's implemented in
such a way that you will be allowed to continue until commit time and
only then you might get an exception stating the the access for that
transaction could not be serialized.
I don't know for the jDriver but if you use the Oracle Thin XA driver
even if you set the isolation level in your descriptor you will get an
exception from Weblogic. It is a Weblogic bug and you can contact
[email protected] to get a patch.
Regards,
Dejan
IJ wrote:
edocs (http://e-docs.bea.com/wls/docs70/oracle/trxjdbcx.html#1080746) states that,
if using jDriver for Oracle/XA you can not set the transaction isolation level
for a
transaction and that 'Transactions use the transaction isolation level set on
the connection
or the default transaction isolation level for the database'. Does this mean that
you shouldn't try to set it programatically (fair enough) or that you can't set
it in the weblogic deployment descriptor either? Also anybody got any idea what
the default is likely to be if you are using
an Oracle 9iR2 database? -
Setting Transaction isolation level when I'm not in an EJB
I have a Message Driven Bean (MDB) that is container managed, and its transaction
isolation is set to TRANSACTION_READ_COMMITTED in weblogic-ejb-jar.xml and that
seems to work fine. If I look at an entity bean in onMessage which is updated/commited
outside the transaction I can see the updates no problem.
Now the problem is this.. inside the onMessage method, the MDB creates a new
instance of a class. This class starts up its own UserTransaction (using (UserTransaction)new
InitialContext().lookup("javax.transaction.UserTransaction")) and goes into a
loop working away. Inside the loop it is inspecting a value on an entity bean.
The classs never sees any updates to this bean which are made outside this new
UserTransaction.
It looks to me that the UserTransaction that the class is getting has a different
isolation level (serialized?). Is there a way to set the isolation level for
a UserTransaction?
Any help would be great!
lance
Just a follow up, I think the isolation level is perhaps being set to REPEATABLE_READ,
since that is what seems to be happening. The value from the first read is maintained
through subsequent reads in the same transaction.
lance
"Lance" <[email protected]> wrote:
>
>I have a Message Driven Bean (MDB) that is container managed, and its
>transaction
>isolation is set to TRANSACTION_READ_COMMITTED in weblogic-ejb-jar.xml
>and that
>seems to work fine. If I look at an entity bean in onMessage which is
>updated/commited
>outside the transaction I can see the updates no problem.
>
>Now the problem is this.. inside the onMessage method, the MDB creates
>a new
>instance of a class. This class starts up its own UserTransaction (using
>(UserTransaction)new
>InitialContext().lookup("javax.transaction.UserTransaction")) and goes
>into a
>loop working away. Inside the loop it is inspecting a value on an entity
>bean.
> The classs never sees any updates to this bean which are made outside
>this new
>UserTransaction.
>
>It looks to me that the UserTransaction that the class is getting has
>a different
>isolation level (serialized?). Is there a way to set the isolation level
>for
>a UserTransaction?
>
>Any help would be great!
>
>lance
-
How to set the isolation level on Entity EJBs
I am using 10.1.3.3 of the OC4J app server.
I am creating an application that uses EJB 2.1.
I am trying to set the isolation levels on the EJBs to either serializable or repeatable read.
When i deploy the EAR file from the OC4J admin console, i can set the isolation level property on the EJB's however when i inspect the orion-ejb-jar.xml file I do not see the isolation level being set. Furthermore, i tried to manually change the isolation setting by editing the orion-ejb-jar.xml and adding the isolation="serialiable" attribute on the entity bean descriptor. I then stopped and restarted the server. I noticed that my change was no longer in the file.
Can someone please let me know how to solve this problem and set the isolation level on Entity EJBs . ThanksI find it at ejb.pdf from BEA.
The transaction-isolation stanza can contain the elements shown here:
<transaction-isolation>
<isolation-level>Serializable</isolation-level>
<method>
<description>...</description>
<ejb-name>...</ejb-name>
<method-intf>...</method-intf>
<method-name>...</method-name>
<method-params>...</method-params>
</method>
</transaction-isolation>
"Hyun Min" <[email protected]> wrote in message
news:3c4e7a83$[email protected]..
> Hi!
>
> I have a question.
> How to set the transaction isolation level using CMT in descriptor?
>
> The Isolation level not supported in CMT?
>
> Thanks.
> Hyun Min
>
>
-
Setting transaction isolation level in a session bean
Hi all!
In a stateless session bean (EJB3) with container managed transactions I need to set the transaction isolation level to SERIALIZABLE.
The idea is to prevent lost update on database when multiple accesses occur concurrently.
Thanks in advance for your patience,
TommasoHi all!
In a stateless session bean (EJB3) with container managed transactions I need to set the transaction isolation level to SERIALIZABLE.
The idea is to prevent lost update on database when multiple accesses occur concurrently.
Thanks in advance for your patience,
Tommaso -
Setting transaction isolation level rises ORA-02089 error
Hello
We have configured a distributed transaction in our application server and
we are using openjpa 1.2.1 and Glassfish application server and Oracle 11g as DB server. Although the default behavior of transaction locking must be optimistic,
it seems that pessimistic locking has been happened.
It is found that Row Lock contention happens in a specific table.
This is the exception :
java.sql.SQLException: ORA-02049: timeout: distributed transaction waiting for lock
Already all the following properties have been set for openjpa.
1. <persistence-unit name="JPXA" transation-type="JTA">
2. <property name="openjpa.TransactionMode" value="managed"/>
You can try a plug-in string to lookup the TM in JNDI (the value is the JNDI name of GlassFish TM as per Google search)
3. <property name="openjpa.ManagedRuntime"
value="jndi(TransactionManagerName=java:appserver/TransactionManager)"/>
Following searching about this locking problem, we found that we should add two more properties for openjpa as listed below.
<property name="openjpa.LockManager" value="version" />
<property name="openjpa.jdbc.TransactionIsolation" value="read-committed" />
but this time by setting the transaction isolation level, we have got another error: org.apache.openjpa.persistence.PersistenceException: ORA-02089: COMMIT is not allowed in a subordinate session.
Thanks for any help.
Regards,
SargolHello
We have configured a distributed transaction in our application server and
we are using openjpa 1.2.1 and Glassfish application server and Oracle 11g as DB server. Although the default behavior of transaction locking must be optimistic,
it seems that pessimistic locking has been happened.
It is found that Row Lock contention happens in a specific table.
This is the exception :
java.sql.SQLException: ORA-02049: timeout: distributed transaction waiting for lock
Already all the following properties have been set for openjpa.
1. <persistence-unit name="JPXA" transation-type="JTA">
2. <property name="openjpa.TransactionMode" value="managed"/>
You can try a plug-in string to lookup the TM in JNDI (the value is the JNDI name of GlassFish TM as per Google search)
3. <property name="openjpa.ManagedRuntime"
value="jndi(TransactionManagerName=java:appserver/TransactionManager)"/>
Following searching about this locking problem, we found that we should add two more properties for openjpa as listed below.
<property name="openjpa.LockManager" value="version" />
<property name="openjpa.jdbc.TransactionIsolation" value="read-committed" />
but this time by setting the transaction isolation level, we have got another error: org.apache.openjpa.persistence.PersistenceException: ORA-02089: COMMIT is not allowed in a subordinate session.
Thanks for any help.
Regards,
Sargol -
Why encounter errors while setting transaction isolation level?
When attempting to set the transaction isolation level within an EJB, I encountered the following exception from the server log:
===========================================================
[#|2006-05-30T15:08:45.906+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
Enter ejbCreate( 100, Duke, Earl, 0.00 ):|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
List of Supported Transaction Isolation Levels: |#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
TRANSACTION_READ_UNCOMMITTED is supported!|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
TRANSACTION_READ_COMMITTED is supported!|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
TRANSACTION_REPEATABLE_READ is supported!|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
TRANSACTION_SERIALIZABLE is supported!|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
1. |#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|Transaction Status: |#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|TRANSACTION_READ_COMMITTED|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|_ThreadID=25;|
con.isReadOnly() = false|#]
[#|2006-05-30T15:08:45.937+0800|WARNING|sun-appserver-pe8.1_02|javax.enterprise.system.stream.err|_ThreadID=25;|
SQLException: java.sql.SQLException: Transaction manager errors. statement not allowed in XA session.|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.container.ejb|_ThreadID=25;|EJB5018: An exception was thrown during an ejb invocation on [SavingsAccountBean]|#]
[#|2006-05-30T15:08:45.937+0800|INFO|sun-appserver-pe8.1_02|javax.enterprise.system.container.ejb|_ThreadID=25;|
javax.ejb.EJBException: ejbCreate: Unable to connect to database. Transaction manager errors. statement not allowed in XA session.
at SavingsAccountBean.ejbCreate(Unknown Source)
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 com.sun.enterprise.security.SecurityUtil$2.run(SecurityUtil.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.security.application.EJBSecurityManager.doAsPrivileged(EJBSecurityManager.java:950)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:158)
at com.sun.ejb.containers.EJBHomeInvocationHandler.invoke(EJBHomeInvocationHandler.java:170)
at $Proxy60.create(Unknown Source)
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 com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:123)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:648)
at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:192)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1709)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1569)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:951)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181)
at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:721)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:469)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1258)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:409)
|#]===========================================================
But from the above log messages, all transcation isolation levels are supported. The relevant source codes are:
/*********************** Database Routines *************************/
private void makeConnection() {
try {
InitialContext ic = new InitialContext();
DataSource ds = ( DataSource )ic.lookup( dbName );
con = ds.getConnection();
DatabaseMetaData dmd = con.getMetaData();
show_supported_trans_levels( dmd );
int status = con.getTransactionIsolation();
System.out.print( "1. " );
disp_tx_status( status );
System.out.println( "con.isReadOnly() = " + con.isReadOnly() );
con.setTransactionIsolation( Connection.TRANSACTION_SERIALIZABLE );
System.out.print( "2. " );
disp_tx_status( status );
} catch( SQLException ex ) {
System.err.println( "SQLException: " + ex.toString() );
throw new EJBException("Unable to connect to database. " +
ex.getMessage());
} catch( NamingException ex ) {
System.err.println( "NamingException: " + ex.toString() );
throw new EJBException("Unable to connect to database. " +
ex.getMessage());
private void disp_tx_status( int status )
System.out.print( "Transaction Status: " );
switch( status )
case( Connection.TRANSACTION_READ_UNCOMMITTED ):
System.out.println( "TRANSACTION_READ_UNCOMMITTED" );
break;
case( Connection.TRANSACTION_READ_COMMITTED ):
System.out.println( "TRANSACTION_READ_COMMITTED" );
break;
case( Connection.TRANSACTION_REPEATABLE_READ ):
System.out.println( "TRANSACTION_REPEATABLE_READ" );
break;
case( Connection.TRANSACTION_SERIALIZABLE ):
System.out.println( "TRANSACTION_SERIALIZABLE" );
break;
case( Connection.TRANSACTION_NONE ):
System.out.println( "TRANSACTION_NONE" );
break;
default:
System.out.println( "UNKNOWN" );
break;
Who can help me?Try the following forum (about EJB technology)
http://forum.java.sun.com/forum.jspa?forumID=13 -
Regarding Transaction Isolation Level
We talk about query and update constent problem again. even I don't take it as problem.
I can see this in SAP notes or SAP help:
JDBC Sender Adapter...
· The UPDATE statement must alter exactly those data records that have been selected by the SELECT statement. You can ensure this is the case by using an identical WHERE clause. (See Processing Parameters, SQL Statement for Query, and SQL Statement for Update below).
· Processing can only be performed correctly when the Transaction Isolation Level is set to repeatable_read or serializable.
If I set transaction isolation level as default, then how can I make sure ' default' is repeatable_read or serializable?
Our DB is Informix.Hey
Please go through the below blog and see if it helps
/people/yining.mao/blog/2006/09/13/tips-and-tutorial-for-sender-jdbc-adapter
Thanks
Aamir -
Default transaction isolation level
Hi,
What is the default transaction isolation level in weblogic?
Is it dependent on the database isolation level?
Pradeep bhatIn 6.1, the default transaction isolation level for CMP beans is the level specified
in the database.
In 5.1, the default is supposed to be serializable, though there is a bug in 5.1
that does not set the level at all. I have received a confirmation from Weblogic
that this is a bug.
Dan
"pradeep bhat" <[email protected]> wrote:
>
Hi,
What is the default transaction isolation level in weblogic?
Is it dependent on the database isolation level?
Pradeep bhat
Maybe you are looking for
-
How do I change the apple ID linked to iBooks in a mac?
I recently purchased a new Macbook Air and I gave my old one to my brother. While setting the old mac for him, I wasn't able to unlink iBooks from my Apple ID, and link it to my brother's. This was fairly easy to do with all other apps (Facetime, iMe
-
What are the prerequisites to setup an receiving incoming email in sharepoint
hi i am clear about the settings i need to setup in sharepoint side but i am not clear what settings are needed in exchange or active directory. my client IT team is asking me to tell , so can you please let me know what needs to be done in otherside
-
Problem with this piece of jsp
Hi, I have a problem with this piece of code, and I dont know why is the error caused: <% String value=(String)session.getAttribute("add"); *if (value.equals("add")) { * %> <th>Add quantity</th> <% } else { %> <th>Modify quantity</th> <% } %> When
-
A contact saved does not appear in contact list.
I saved a contact on my iPhone and the same contact cannot be found in my contact list. This same contact can be found only if I select all contacts in groups . But if I select each group manually, it does not appear again. What can be done for this
-
How can I edit my apple ID in the app store the enable update some applications because it not my own that is showing