(back to JavaTips)
Example database datasource configs are in docs/example/jca.
Give jboss more memory than the java default - you'll be glad you did (or sorry if you don't)!
Pay attention to the pool sizes in
standardjboss.xml
, especially the Stateless Session Bean pool size, which is 100 by default. This seems pretty low, at least if you have methods that take a while to perform. If you're using MDB's you'll want to bump the
MaximumSize
in the Message Driven Bean
container-invoker-conf
to something larger than the default (which is 15).
A strange error in jboss happened when I had the same ejb-jar declared twice in the application.xml. It caused strange errors that looked like classloader problems. For example, one error was an access violation error when one class tried to access a package-protected method of a class in the same package. Another had to do with a class not being able to call a method in another class because it couldn't find the appropriate signature, even though everything appeared to match.
Oracle
JBoss and Oracle's jdbc driver don't play nice unless you turn on "TrackConnectionByTx".
If you get an error like this when you try to use an Oracle XA datasource:
18:32:14,956 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=DBHMKY11//245, BranchQual=] errorCode=XAER_RMERR
oracle.jdbc.xa.OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1157)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:295)
at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:133)
at org.jboss.tm.TransactionImpl.startResource(TransactionImpl.java:1137)
at org.jboss.tm.TransactionImpl.enlistResource(TransactionImpl.java:624)
...
Then you need to install the Oracle server JVM option.
CMP EJB Finders
I had a problem where I got "EJB Spec Violation" messages indicating that I had violated section 10.5.6 of the spec. Turns out I was trying to declare a custom CMP finder method with a
String
parameter but it needs to be fully-qualified, i.e.
java.lang.String
instead. See
http://www.jboss.org/thread.jsp?forum=141&thread=33904&message=3783551
--
TobyCabot - 14 Nov 2002 - 29 May 2003