Speicys e demais, parece que o problema da mal formação de XML diz respeito à ordem como os elementos são definidos. O elemento entity do DTD está descrito abaixo e diz que os elementos de datasource devem vir após o <ejb-name>. Lembrei-me de outra situação de erro em XML que tive aqui na empresa e era por conta da tal ordem também. Isso aqui em baixo _não_ dá erro de mal formação: <enterprise-beans> <entity> <ejb-name>DisciplinaEJB</ejb-name> <datasource>java:/MSSQLXaDS</datasource> <datasource-mapping>MS SQLSERVER</datasource-mapping> <create-table>false</create-table> <remove-table>false</remove-table> <pk-constraint>true</pk-constraint> <table-name>disciplina</table-name> <cmp-field> .... </entity> MAS, hehehe, o que eu tentei fazer não funcionou. Defini um datasource para <defaults> e defini um datasource distinto para o EJB acima. Cada datasource aponta, de fato, para duas máquinas distintas, ambas com SQL. Já testei os dois DS´s isoladamente e ambos funcionam. Quando tento misturar as coisas, ganho uma exceção de presente. Vou colocá-la ao final de minha mensagem para o caso de alguém quiser dar uma olhada. Infelizmente, não pude analisar a causa e vou ter que dar um tempo no EP até mais a noite, pois já enrolei demais aqui no trabalho... :)) De todo modo, a idéia é fazer isso mesmo? Tenho 2 beans entidades. Queria usar o default para um bean e o datasource personalizado para o outro, na esperança que as coisas continuem a rodar normalmente. É isso? Germano P.S.: Apesar dos pesares, acho XML uma sacada legal. De verdade. :) (não me xinguem muito) ************** EXCECAO ************** 11:05:21,186 INFO [Server] JBoss started in 21s:765ms 11:10:21,874 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl [Fo rmatId=257, GlobalId=ics-germano//15, BranchQual=] errorCode=XAER_RMERR javax.transaction.xa.XAException: [Microsoft][SQLServer 2000 Driver for JDBC][SQ LServer]xa_end (4000000) returns -6 at com.microsoft.jdbcx.sqlserver.SQLServerImplXAResource.executeXaRpc(Un known Source) at com.microsoft.jdbcx.sqlserver.SQLServerImplXAResource.end(Unknown Sou rce) at com.microsoft.jdbcx.base.BaseXAResource.end(Unknown Source) at org.jboss.tm.TransactionImpl.endResource(TransactionImpl.java:1064) at org.jboss.tm.TransactionImpl.endResources(TransactionImpl.java:1126) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:332) at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCM T.java:308) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep torCMT.java:194) at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.ja va:58) at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIntercep tor.java:105) at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1 31) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyF actoryFinderInterceptor.java:125) at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:475) at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLoca lProxyFactory.java:271) at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java :110) at $Proxy43.findAll(Unknown Source) at matricula.InscricaoEJB.listaOfertas(InscricaoEJB.java:134) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S tatelessSessionContainer.java:606) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo ke(CachedConnectionInterceptor.java:186) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte rceptor.java:108) at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxI nterceptorBMT.java:144) at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:6 2) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat elessSessionInstanceInterceptor.java:77) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor. java:130) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto ryFinderInterceptor.java:154) at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContai ner.java:303) at org.jboss.ejb.Container.invoke(Container.java:671) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java: 325) at java.lang.reflect.Method.invoke(Native Method) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236) at sun.rmi.transport.Transport$1.run(Transport.java:147) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:143) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4 60) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport .java:701) at java.lang.Thread.run(Thread.java:479) 11:10:21,905 INFO [STDOUT] Germano 11:10:21,921 ERROR [LogInterceptor] TransactionRolledbackLocalException, causedB y: javax.ejb.EJBException: Unexpected Throwable at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.j ava:257) at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1 35) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyF actoryFinderInterceptor.java:125) at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:475) at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLoca lProxyFactory.java:271) at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java :110) at $Proxy43.findAll(Unknown Source) at matricula.InscricaoEJB.listaOfertas(InscricaoEJB.java:134) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S tatelessSessionContainer.java:606) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo ke(CachedConnectionInterceptor.java:186) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte rceptor.java:108) at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxI nterceptorBMT.java:144) at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:6 2) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat elessSessionInstanceInterceptor.java:77) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor. java:130) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto ryFinderInterceptor.java:154) at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContai ner.java:303) at org.jboss.ejb.Container.invoke(Container.java:671) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java: 325) at java.lang.reflect.Method.invoke(Native Method) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236) at sun.rmi.transport.Transport$1.run(Transport.java:147) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:143) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4 60) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport .java:701) at java.lang.Thread.run(Thread.java:479) 11:10:21,936 ERROR [LogInterceptor] TransactionRolledbackException, causedBy: javax.ejb.EJBException: Unexpected Throwable at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.j ava:257) at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1 35) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyF actoryFinderInterceptor.java:125) at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:475) at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLoca lProxyFactory.java:271) at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java :110) at $Proxy43.findAll(Unknown Source) at matricula.InscricaoEJB.listaOfertas(InscricaoEJB.java:134) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S tatelessSessionContainer.java:606) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo ke(CachedConnectionInterceptor.java:186) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte rceptor.java:108) at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxI nterceptorBMT.java:144) at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:6 2) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat elessSessionInstanceInterceptor.java:77) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor. java:130) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto ryFinderInterceptor.java:154) at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContai ner.java:303) at org.jboss.ejb.Container.invoke(Container.java:671) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java: 325) at java.lang.reflect.Method.invoke(Native Method) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:236) at sun.rmi.transport.Transport$1.run(Transport.java:147) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:143) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4 60) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport .java:701) at java.lang.Thread.run(Thread.java:479) ************************** FINAL DA EXCECAO ************************** ----- Original Message ----- From: "Roberto Speicys Cardoso" <speicys@ime.usp.br> Cc: <reverbel-sma@ime.usp.br> Sent: Thursday, December 05, 2002 9:25 PM Subject: Re: SQL Server up and running! On Thu, 5 Dec 2002, Germano Bezerra wrote:Reverbel, isso que você falou faz sentido, pois o dtd define que: <!ELEMENT entity (ejb-name, (datasource, datasource-mapping)?, create-table?, remove-table?, read-only?, read-time-out?, row-locking?, pk-constraint?, read-ahead?, list-cache-max?, fetch-size?, table-name?, cmp-field*, load-groups?, eager-load-group?, lazy-load-groups?, query*)> O único cuidado é inserir também o datasource-mapping. Mas nada de mais grave, em tese! Tento usar o seguinte: <enterprise-beans> <entity> <ejb-name>DisciplinaEJB</ejb-name> ... <datasource>java:/MSSQLXaDS</datasource> <datasource-mapping>MS SQLSERVER</datasource-mapping> </entity> ... </enterprise-beans> O cidadão continua reclamando de mal formação no XML. :( Já tentei todasasvariações possíveis dentro do que tá descrito no DTD, e nada. Alguém já vivenciou tal experiência? Isso (definir um datasource a nível de bean) é necessário para o disparodostais dois XAs distintos, correto? Não consegui nem por meu pobre log pra funcionar ainda... O que se dirá do algoritmo de recuperação...Ok, isto está ficando repetitivo, mas eu tive exatamente o mesmo problema! Sim, eu acho que isso é necessário para conseguir dois XA's de _recursos_ diferentes, que é o caso que o TxManager trata como 2PC. Eu tentei configurar antes, e deu erro de XML mal formado. Como este erro é característico de pisadas na bola (falta de tag, espaço a mais, maiúscula ao invés de minúscula, viva XML!) resolvi mandar a mensagem. Isto, até agora, não consegui resolver. Abraços, Beto <speicys@etc...> --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.423 / Virus Database: 238 - Release Date: 25/11/2002