cancel
Showing results for 
Search instead for 
Did you mean: 

ejb call exception

werner_dornacher
Explorer
0 Kudos

Hi,

I deployed a bean managed entity bean on the WAS 6.40. I can lookup at the bean, call a find method that returns a collection of "Employee" objects. But when I try to call a method of that object I get a :

java.rmi.RemoteException: com.sap.engine.services.ejb.exceptions.BaseRemoteException: Transaction system failure in method de.saarstahl.was.beans.EmployeeObjectImpl10.getFirstName().

; nested exception is:

javax.transaction.RollbackException: com.sap.engine.services.ts.exceptions.BaseRollbackException: Transaction ( SAP J2EE Engine JTA Transaction : 0ffffff8d4bffffffae0007d ) marked for rollback.

Here is the client:

Employee emp;

try {

Properties p = new Properties();

p.put(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");

p.put(Context.PROVIDER_URL, "pc1396:50004");

p.put(Context.SECURITY_PRINCIPAL, "Administrator");

p.put(Context.SECURITY_CREDENTIALS, "pass");

Context jndiCtx = new InitialContext(p);

Object ref =jndiCtx.lookup ("sap.com/DepBean/EmployeeBean");

EmployeeHome home = (EmployeeHome) javax.rmi.PortableRemoteObject.narrow(ref,EmployeeHome.class);

Collection c = home.findByName("becker");

Object o = c.iterator().next();

emp = (Employee)javax.rmi.PortableRemoteObject.narrow(o, Employee.class);

String a = em.getFirstName();

} catch (Exception e) {

e.printStackTrace();

}

I get the exception when I call the "getFirstName" method.

What is wrong with my code.

Best regards,

Werner

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Maybe you can change the transaction context to TX_NOT_SUPPORTED....after all, there seems to be no reason to commit or rollback when you are retrieving data.

With this TX level, the container suspends the transaction for that ejb method call.

Just an idea...

Mark

werner_dornacher
Explorer
0 Kudos

Thanks Mark, it works now .