I have problem in changing ClassDescriptor in managed
environment(Jboss-container managed transaction). Whenever I add the
following code exceptions thrown. 

Another question, what's the difference between using the following 2
statements, if I used put method, exception is not thrown but the
ClassDescriptor changes doesn't take place. 

1. broker.getDescriptorRepository().put(LogReceivingItem.class,cd);
2. broker.getDescriptorRepository().setClassDescriptor(newCd); 


FieldDescriptor updateField =
broker.getClassDescriptor(LogReceivingItem.class).
getFieldDescriptorByName("status"); 
FieldDescriptor pkField =
broker.getClassDescriptor(LogReceivingItem.class).getPrimaryKey(); 
ClassDescriptor origCd = broker.getDescriptorRepository().
getDescriptorFor(LogReceivingItem.class);
ClassDescriptor newCd = new
ClassDescriptor(broker.getDescriptorRepository()); 
newCd.setTableName("LOG_RECEIVING_ITEM");
newCd.addFieldDescriptor(pkField);
newCd.addFieldDescriptor(updateField); 
broker.getDescriptorRepository().setClassDescriptor(newCd); 

Iterator iterate3 = issueItem.iterator(); 
while(iterate3.hasNext()){ 
        LogReceivingItem receivingItem =
(LogReceivingItem)iterate3.next(); 
        tx.lock(receivingItem,Transaction.WRITE);
        receivingItem.setStatus(ILog.LOG_ISSUED); 
} 
broker.getDescriptorRepository().setClassDescriptor(origCd); 

Regards,
Stephen

2003-07-26 10:54:59,350 ERROR [org.apache.ojb.odmg.DatabaseImpl] Could
not close database, found active transaction. tx-status was
'STATUS_ACTIVE'
2003-07-26 10:54:59,350 ERROR [org.apache.ojb.odmg.J2EETransactionImpl]
org.apache.ojb.broker.OJBRuntimeException: Could not commit, because tx
status was marked rollback
2003-07-26 10:54:59,413 ERROR [STDERR] Query    "rollback"
execution time: 0       
2003-07-26 10:54:59,413 ERROR [STDERR] Query    "SET autocommit=1"
execution time: 0       
2003-07-26 10:54:59,413 ERROR [STDERR] Query    "SHOW VARIABLES LIKE
'tx_isolation'" execution time: 0       result set fetch time:  0
2003-07-26 10:54:59,413 ERROR [org.jboss.ejb.plugins.LogInterceptor]
RuntimeException:
org.odmg.TransactionInProgressException: Database cannot be closed,
associated Tx is still open.
Used PBKey was org.apache.ojb.broker.PBKey: repository=syweb, user=syl,
password=*****
        at org.apache.ojb.odmg.DatabaseImpl.close(Unknown Source)
        at
my.com.shinyang.eply.service.ejb.LogIssuingSessionBean.ejbRemove(LogIssu
ingSessionBean.java:92)
        at
org.jboss.ejb.StatelessSessionEnterpriseContext.discard(StatelessSession
EnterpriseContext.java:93)
        at
org.jboss.ejb.plugins.AbstractInstancePool.discard(AbstractInstancePool.
java:271)
        at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Statele
ssSessionInstanceInterceptor.java:99)
        at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterce
ptor.java:107)
        at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptor
CMT.java:237)
        at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:98)
        at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.jav
a:130)
        at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:208)
        at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer
.java:313)
        at org.jboss.ejb.Container.invoke(Container.java:738)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
        at
org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:383
)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
        at sun.rmi.transport.Transport$1.run(Transport.java:148)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
        at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.ja
va:701)
        at java.lang.Thread.run(Thread.java:534)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to