Foros del Web » Programación para mayores de 30 ;) » Java »

Transacciones en EJB

Estas en el tema de Transacciones en EJB en el foro de Java en Foros del Web. El tema es el siguiente, en EJB 2.0/2.1 como se manejan las transacciones? Si se trata de un EJB-CMP: las transacciones las gestiona el Contenedor ...
  #1 (permalink)  
Antiguo 05/10/2006, 09:18
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Pregunta Transacciones en EJB

El tema es el siguiente, en EJB 2.0/2.1 como se manejan las transacciones?

Si se trata de un EJB-CMP: las transacciones las gestiona el Contenedor EJB, bien, pues entonces de que manera se le indica al contenedor la forma en que debe hacerlo?, como se delimita una transacción?, se puede lograr el bloqueo de registros?

Estos temas me causan profundo interes, podrian ayudarme a responderme estas preguntas?
  #2 (permalink)  
Antiguo 09/10/2006, 05:51
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
La pregunta es ahora mas precisa. Si utilizo transacciones demarcadas por el cliente, utilizo avax.transaction.UserTransaction. El tema es que mi codigo compila bien, pero cuando hago un begin transaccion todo falla, esto es lo que ocurre u mi codigo fuente:


private Properties p = new Properties();
private UserTransaction ut;
...
Context conttrans = new InitialContext(p);
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.int erfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL,"jnp://srv_backup_xp:1099");
ut = (UserTransaction) conttrans.lookup("UserTransaction");

...
try{
ut.begin();
//Aqui la llamada a un metodo remoto...
ut.commit();
}
catch(Exception err){
System.out.println(err);
ut.rollback();
}

El error es el siguiente:

javax.transaction.SystemException: java.lang.RuntimeException: UT factory lookup failed
at org.jboss.tm.usertx.client.ClientUserTransaction.r ollback(ClientUserTransaction.java:216)
at abm_test_comercial_cliente.proveedores.FrmProveedo res.btnActualizar_actionPerformed(FrmProveedores.j ava:426)
at abm_test_comercial_cliente.proveedores.FrmProveedo res$FrmProveedores_btnActualizar_actionAdapter.act ionPerformed(FrmProveedores.java:695)
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.jav a:5488)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3093)
at java.awt.Component.processEvent(Component.java:525 3)
at java.awt.Container.processEvent(Container.java:196 6)
at java.awt.Component.dispatchEventImpl(Component.jav a:3955)
at java.awt.Container.dispatchEventImpl(Container.jav a:2024)
at java.awt.Component.dispatchEvent(Component.java:38 03)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3822)
at java.awt.Container.dispatchEventImpl(Container.jav a:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774 )
at java.awt.Component.dispatchEvent(Component.java:38 03)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 463)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:110)
  #3 (permalink)  
Antiguo 09/10/2006, 05:53
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Pero si hago:
...
ut = (UserTransaction) conttrans.lookup("java:comp/UserTransaction");
...

El error es el siguiente:

javax.naming.NameNotFoundException: comp not bound
at org.jnp.server.NamingServer.getBinding(NamingServe r.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServe r.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer .java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.ja va:267)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:1 53)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport. java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages( TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(Str eamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:1 26)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingCont ext.java:625)
at org.jnp.interfaces.NamingContext.lookup(NamingCont ext.java:587)
at javax.naming.InitialContext.lookup(InitialContext. java:351)
at abm_test_comercial_cliente.principal.FrmMenu.<init >(FrmMenu.java:75)
at abm_test_comercial_cliente.principal.Application1. <init>(Application1.java:15)
at abm_test_comercial_cliente.principal.Application1$ 1.run(Application1.java:54)
at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 461)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:110)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:19.