Pessoal,
Comecei a estudar EJB utilizando o JBoss.
Fora aquela surra inicial que já era esperada estou encontrando um
probleminha.
Tenho um Entity Bean do tipo BMP que se chama Account (aquele do exemplo da
Sun com algumas modificações). A persistência é feita num banco Oracle.
O código do cliente é algo assim:
AccountHome home = (AccountHome)PortableRemoteObject.narrow(objref,
AccountHome.class);
for (int i=0; i<QUANTIDADE_OBJETOS; i++) {
Account account = home.create("" + i, "Nome" + i,
"Sobrenome" + i, i * 10.00);
account.credit(100.07);
}
A finalidade deste código é criar varios beans Account no servidor.
Bem, quando coloco um número "baixo" para QUANTIDADE_OBJETOS ( < 10) tudo
funciona perfeitamente.
Quanto QUANTIDADE_OBJETOS é maior ( = 50) o servidor JBoss reporta o
seguinte erro.
[Account] java.sql.SQLException: ORA-00020: maximum number of processes
(150) exceeded
[Account]
[Account] at
oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
[Account] at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
[Account] at oracle.jdbc.ttc7.O3log.receive1st(O3log.java:428)
[Account] at
oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:248)
[Account] at
oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:246)
[Account] at
oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
[Account] at
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
[Account] at
java.sql.DriverManager.getConnection(DriverManager.java:517)
[Account] at
java.sql.DriverManager.getConnection(DriverManager.java:177)
[Account] at
oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:111)
[Account] at
oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.
java:107)
[Account] at
oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:88)
[Account] at
org.jboss.minerva.factories.XAConnectionFactory.createObject(XAConnectionFactory.java:232)
[Account] at
org.jboss.minerva.pools.ObjectPool.createNewObject(ObjectPool.java:801)
[Account] at
org.jboss.minerva.pools.ObjectPool.getObject(ObjectPool.java:549)
[Account] at
org.jboss.minerva.datasource.XAPoolDataSource.getConnection(XAPoolDataSource.java:169)
[Account] at
com.kepler.account.AccountEJB.getConnection(AccountEJB.java:231)
[Account] at
com.kepler.account.AccountEJB.storeRow(AccountEJB.java:405)
[Account] at
com.kepler.account.AccountEJB.ejbStore(AccountEJB.java:206)
[Account] at java.lang.reflect.Method.invoke(Native Method)
[Account] at
org.jboss.ejb.plugins.BMPPersistenceManager.storeEntity(BMPPersistenceManager.java:305)
[Account] at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor$InstanceSynchronization.beforeCompletion(Entit
ySynchronizationInterceptor.java:343)
[Account] at
org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1104)
[Account] at org.jboss.tm.TxCapsule.commit(TxCapsule.java:278)
[Account] at
org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:76)
[Account] at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:318)
[Account] at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[Account] at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:144)
[Account] at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
[Account] at
org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:323)
[Account] at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:163)
[Account] at java.lang.reflect.Method.invoke(Native Method)
[Account] at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
[Account] at sun.rmi.transport.Transport$1.run(Transport.java:142)
[Account] at java.security.AccessController.doPrivileged(Native
Method)
[Account] at
sun.rmi.transport.Transport.serviceCall(Transport.java:139)
[Account] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:443)
[Account] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:643)
[Account] at java.lang.Thread.run(Thread.java:484)
[JMX RMI Adaptor] Stopping
[JMX RMI Adaptor] Stopped
Nâo entendi a mensagem de erro.
Alguem sabe oque pode estar errado ????
Valeu,
Silvio Hohne.
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------