[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: SQL Server up and running!
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 todas
as
> variaçõ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 disparo
dos
> tais 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