First of all, apologies if this is a duplicate post. I've had some
difficulties with the LISTSERV.
I am running some performance tests on a simple EJB application and end up
getting
ORA-0060 exceptions when load gets big enough. I have separate JSP and EJB
servers.
I've isolated the problem to a simple JSP page, which creates a new Artist
EJB and
then deletes it. Both actions are done thorgh a session facade EJB which
operates
on CMP entity beans. Artist EJB also has CMR relationships to a CD EJB, but
in
this isolated case I do not set them.
Both servers are Weblogic 6.1sp5 on Windows 2000. Database is Oracle 9.2.
Part of JSP page:
------------------------
Context ctx = ContextService.getRemoteContext();
ArtistManagerHome home = (ArtistManagerHome) ctx.lookup
("ArtistManagerHome");
ArtistManager aManager = home.create();
ArtistDTO artist = aManager.createArtistLocal(newRecordArtistName,
newRecordArtistFirstName, article);
Integer artistId = artist.getId();
System.out.println("Created artist: " + artistId);
ArtistManagerHome home2 = (ArtistManagerHome) ctx.lookup
("ArtistManagerHome");
ArtistManager aManager2 = home.create();
aManager2.deleteArtistLocal(artistId);
System.out.println("Deleted artist: " + artistId);
------------------------
Session facade either creates a new Artist item or deletes it, through
local home / local
interface. ArtistBean's createUniqueLocal -method is called, and first it
does a check to find
out that a duplicate item (same firstname / lastname) does not exist
already
Parts of Artist bean:
------------------------
public Integer ejbCreateUniqueLocal(String name, String firstName,
Character article)
throws CreateException {
ArtistLocalHome home = (ArtistLocalHome) ctx.getEJBLocalHome();
try {
home.findByNames(name, firstName, article);
} catch (ObjectNotFoundException o) {
// good, we did not find it
return ejbCreate(name, firstName, article);
} catch (FinderException f) {
throw new CreateException("f");
}
// we found it - error!
throw new DuplicateKeyException
("artist already exists");
}
public Integer ejbCreate(String name, String firstName, Character
article)
throws CreateException {
if (article != null && !article.equals(new Character('t'))) {
throw new CreateException
("Unsupported article");
}
setName(name);
setFirstName(firstName);
setArticle(article);
return null; // container is responsible for returning the
// primary key
}
------------------------
Primary keys are created using oracle sequences
weblogic-cmp-rdbms-jar.xml:
------------------------
<weblogic-rdbms-bean>
<ejb-name>Artist</ejb-name>
<data-source-name>TestDS</data-source-name>
<table-name>Artist</table-name>
<field-map>
<cmp-field>name</cmp-field>
<dbms-column>name</dbms-column>
</field-map>
<field-map>
<cmp-field>firstName</cmp-field>
<dbms-column>firstName</dbms-column>
</field-map>
<field-map>
<cmp-field>article</cmp-field>
<dbms-column>article</dbms-column>
</field-map>
<field-map>
<cmp-field>id</cmp-field>
<dbms-column>id</dbms-column>
</field-map>
<automatic-key-generation>
<generator-type>ORACLE</generator-type>
<generator-name>seq_Artist</generator-name>
<key-cache-size>1</key-cache-size>
</automatic-key-generation>
</weblogic-rdbms-bean>
------------------------
Finally, stacktraces that get thrown (very long so only beginning....)
------------------------
...
Created artist: 21223
Deleted artist: 21209
Deleted artist: 21220
Deleted artist: 21207
Deleted artist: 21215
Deleted artist: 21216
Deleted artist: 21211
Deleted artist: 21221
Deleted artist: 21223
Exception stacktrace: java.rmi.RemoteException: EJB Exception: ; nested
exceptio
n is:
javax.ejb.EJBException:
Start server side stack trace:
javax.transaction.TransactionRolledbackException: EJB Exception::
java.sql.SQLEx
ception: ORA-00060: lukkiutuma havaittu resurssin odotuksen aikana
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:243)
at weblogic.jdbc.oci.Statement.executeUpdate(Statement.java:989)
at weblogic.jdbc.jts.Statement.executeUpdate(Statement.java:503)
at
cd.Artist_wkqag7__WebLogic_CMP_RDBMS.ejbRemove(Artist_wkqag7__WebLogi
c_CMP_RDBMS.java:1838)
at weblogic.ejb20.manager.DBManager.remove(DBManager.java:659)
at
weblogic.ejb20.internal.EntityEJBObject.remove(EntityEJBObject.java:1
23)
at
cd.ArtistBean_wkqag7_EOImpl.remove(ArtistBean_wkqag7_EOImpl.java:436)
at cd.session.ArtistManagerBean.deleteArtist(Unknown Source)
at
cd.session.ArtistManagerBean_6on7i2_EOImpl.deleteArtist(ArtistManager
Bean_6on7i2_EOImpl.java:120)
at cd.session.ArtistManagerBean_6on7i2_EOImpl_WLSkel.invoke(Unknown
Sour
ce)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:93)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
; nested exception is:
java.sql.SQLException: ORA-00060: lukkiutuma havaittu resurssin
odotukse
n aikana
java.sql.SQLException: ORA-00060: lukkiutuma havaittu resurssin odotuksen
aikana
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:243)
at weblogic.jdbc.oci.Statement.executeUpdate(Statement.java:989)
at weblogic.jdbc.jts.Statement.executeUpdate(Statement.java:503)
at
cd.Artist_wkqag7__WebLogic_CMP_RDBMS.ejbRemove(Artist_wkqag7__WebLogi
c_CMP_RDBMS.java:1838)
at weblogic.ejb20.manager.DBManager.remove(DBManager.java:659)
at
weblogic.ejb20.internal.EntityEJBObject.remove(EntityEJBObject.java:1
23)
at
cd.ArtistBean_wkqag7_EOImpl.remove(ArtistBean_wkqag7_EOImpl.java:436)
at cd.session.ArtistManagerBean.deleteArtist(Unknown Source)
at
cd.session.ArtistManagerBean_6on7i2_EOImpl.deleteArtist(ArtistManager
Bean_6on7i2_EOImpl.java:120)
at cd.session.ArtistManagerBean_6on7i2_EOImpl_WLSkel.invoke(Unknown
Sour
ce)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:93)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
--------------- nested within: ------------------
javax.ejb.EJBException
- with nested exception:
[javax.transaction.TransactionRolledbackException: EJB Exception::
java.sql.SQLE
xception: ORA-00060: lukkiutuma havaittu resurssin odotuksen aikana
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:243)
at weblogic.jdbc.oci.Statement.executeUpdate(Statement.java:989)
at weblogic.jdbc.jts.Statement.executeUpdate(Statement.java:503)
at
cd.Artist_wkqag7__WebLogic_CMP_RDBMS.ejbRemove(Artist_wkqag7__WebLogi
c_CMP_RDBMS.java:1838)
at weblogic.ejb20.manager.DBManager.remove(DBManager.java:659)
at
weblogic.ejb20.internal.EntityEJBObject.remove(EntityEJBObject.java:1
23)
at
cd.ArtistBean_wkqag7_EOImpl.remove(ArtistBean_wkqag7_EOImpl.java:436)
at cd.session.ArtistManagerBean.deleteArtist(Unknown Source)
at
cd.session.ArtistManagerBean_6on7i2_EOImpl.deleteArtist(ArtistManager
Bean_6on7i2_EOImpl.java:120)
at cd.session.ArtistManagerBean_6on7i2_EOImpl_WLSkel.invoke(Unknown
Sour
ce)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:93)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
; nested exception is:
java.sql.SQLException: ORA-00060: lukkiutuma havaittu resurssin
odotukse
n aikana]
at cd.session.ArtistManagerBean.deleteArtist(Unknown Source)
at
cd.session.ArtistManagerBean_6on7i2_EOImpl.deleteArtist(ArtistManager
Bean_6on7i2_EOImpl.java:120)
at cd.session.ArtistManagerBean_6on7i2_EOImpl_WLSkel.invoke(Unknown
Sour
ce)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:93)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
End server side stack trace
- with nested exception:
[javax.transaction.TransactionRolledbackException: EJB Exception::
java.sql.SQLE
xception: ORA-00060: lukkiutuma havaittu resurssin odotuksen aikana
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:243)
at weblogic.jdbc.oci.Statement.executeUpdate(Statement.java:989)
at weblogic.jdbc.jts.Statement.executeUpdate(Statement.java:503)
at
cd.Artist_wkqag7__WebLogic_CMP_RDBMS.ejbRemove(Artist_wkqag7__WebLogi
c_CMP_RDBMS.java:1838)
at weblogic.ejb20.manager.DBManager.remove(DBManager.java:659)
at
weblogic.ejb20.internal.EntityEJBObject.remove(EntityEJBObject.java:1
23)
at
cd.ArtistBean_wkqag7_EOImpl.remove(ArtistBean_wkqag7_EOImpl.java:436)
at cd.session.ArtistManagerBean.deleteArtist(Unknown Source)
at
cd.session.ArtistManagerBean_6on7i2_EOImpl.deleteArtist(ArtistManager
Bean_6on7i2_EOImpl.java:120)
at cd.session.ArtistManagerBean_6on7i2_EOImpl_WLSkel.invoke(Unknown
Sour
ce)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:360)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:93)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:329)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:140)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:121)
; nested exception is:
java.sql.SQLException: ORA-00060: lukkiutuma havaittu resurssin
odotukse
n aikana
Start server side stack trace:
java.sql.SQLException: ORA-00060: lukkiutuma havaittu resurssin odotuksen
aikana
...
------------------------
What's the problem?
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".