You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Adamo Bozzetti <ad...@abfidee.it> on 2007/09/21 15:35:00 UTC

Problem with jboss datasource

Hi all,
I'm using jackrabbit deployed on jboss 4.0.3 sp1 in a model 2 
configuration and i use Oracle 10g as db persistence layer. I'm using 
jackrabbit 1.2.3 and jdbc driver ojdbc14.jar.
When i configure the persistence manager accessing directly the db with 
a configuration like this:
 <PersistenceManager 
class="org.apache.jackrabbit.core.state.db.OraclePersistenceManager">
          <param name="driver" value="oracle.jdbc.OracleDriver"/>
          <param name="url" 
value="jdbc:oracle:thin:@192.168.1.3:1521:abftest"/>
          <param name="user" value="jackrabbit"/>
          <param name="password" value="password"/>
          <param name="schema" value="oracle"/>
          <param name="schemaObjectPrefix" value="dmarea_"/>
          <param name="externalBLOBs" value="true"/>
  </PersistenceManager>
there are no proglems in normal use, but when the db is stopped for the 
back up operation and then restarted, i noticed that the connection are 
non refreshed correctly, so i prefer to use the data source managed 
directly by the application server. But if i use a data source of jboss 
in a configuration like this:
     <PersistenceManager 
class="org.apache.jackrabbit.core.state.db.JNDIDatabasePersistenceManager">
          <param name="dataSourceLocation" value="java:/JackRabbitDS"/>
          <param name="schema" value="oracle"/>
          <param name="schemaObjectPrefix" value="dmarea_"/>
          <param name="externalBLOBs" value="true"/>
        </PersistenceManager>
I have problem writing node state because the dimension of the blob 
excedes the mazimum length, the stacktrace is below:
2007-09-21 14:33:36,687 ERROR 
[org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager] 
failed to write node state: 7b5eaf19-85eb-4392-8d4e-0d8b183b8138
java.sql.SQLException: La dimensione dei dati è superiore alla 
dimensione massima per questo tipo: 1024 (The dimension of data is above 
the maximun length for this type)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
        at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
        at 
oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2445)
        at 
oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1170)
        at 
oracle.jdbc.driver.OraclePreparedStatement.setBytes(OraclePreparedStatement.java:2212)
        at 
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3006)
        at 
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3221)
        at 
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:432)
        at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:831)
        at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:427)
        at 
org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:82)
        at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:274)
        at 
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675)
        at 
org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162)
        at 
org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:172)
        at 
org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:315)
        at 
org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
        at 
org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233)
        at 
org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764)
        at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
        at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
        at 
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
        at org.jboss.ejb.Container.invoke(Container.java:873)

I have already seen this problem using jboss datasource managing blob 
data, but it can be solved using the underlying connection instead of 
the wrapped connection of jboss.
I search in the list but i don't find anything for this.
Can anyone help me?
Thank you in advance.

-- 
Adamo Bozzetti
ABF Ideee snc
Corso Matteotti, 10
26100 CREMONA
tel. 0372/800746
fax  0372/800746
e-mail: adamo.bozzetti@abfidee.it
url: www.abfidee.it

Le informazioni contenute nella presente e-mail e nei documenti eventualmente allegati sono confidenziali e sono comunque  riservate al destinatario delle stesse.
La loro diffusione, distribuzione e/o copia da parte di terzi è proibita e può costituire violazione della normativa che tutela il diritto alla privacy.
Se avete ricevuto questa comunicazione per errore, Vi preghiamo di informare immediatamente il mittente del messaggio e di distruggere questa e-mail.
________________________________________________________________________________________
This e-mail is confidential and it is legally privileged.
If you have received it in error, please notify us immediately by reply e-mail and then delete this message from your system.
Please do not copy it or use it for any purposes, or disclose its contents to any other person.
Mind that to do so could be a breach of Italian privacy Law.
Thank you for your co-operation.


Re: Problem with jboss datasource

Posted by Adamo Bozzetti <ad...@abfidee.it>.
Hi Stefan,
when i try to register a new namespace  jackrabbit throws this exception:
2007-09-26 10:07:58,163 ERROR 
[org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager] 
committing change log failed
java.sql.SQLException: Non vi sono altri dati da leggere nel socket 
(there are no more data to read from socket)
       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
       at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
       at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:963)
       at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
       at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:104)
       at oracle.jdbc.ttc7.TTC7Protocol.commit(TTC7Protocol.java:449)
       at 
oracle.jdbc.driver.OracleConnection.commit(OracleConnection.java:1409)
       at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:301) 

       at 
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675) 

       at 
org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162) 

       at 
org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:172) 

       at 
org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:315)
       at 
org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39) 

       at 
org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233)
       at 
org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764)
       at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340)
       at 
org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486) 

       at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346) 

       at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
       at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153) 

       at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
       at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) 

       at 
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
       at org.jboss.ejb.Container.invoke(Container.java:873)
       at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 

       at java.lang.reflect.Method.invoke(Method.java:324)
       at 
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141) 

       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
       at 
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245) 

       at 
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
       at 
org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) 

       at 
org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406)
       at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java:701) 

       at java.lang.Thread.run(Thread.java:534)
2007-09-26 10:07:58,169 WARN  [org.jboss.tm.TransactionImpl] 
XAException: tx=TransactionImpl:XidImpl[FormatId=257, 
GlobalId=vm-jtest/277, BranchQual=, localId=277] errorCode=XA_RBOTHER
javax.transaction.xa.XAException
       at 
org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:182) 

       at 
org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:315)
       at 
org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39) 

       at 
org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233)
       at 
org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764)
       at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340)
       at 
org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486) 

       at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346) 

       at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
       at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153) 

       at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
       at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) 

       at 
org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
       at org.jboss.ejb.Container.invoke(Container.java:873)
       at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 

       at java.lang.reflect.Method.invoke(Method.java:324)
       at 
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141) 

       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
       at 
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245) 

       at 
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
       at 
org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805) 

       at 
org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406)
       at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java:701) 

       at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.jackrabbit.core.TransactionException: Unable to 
commit transaction.
       at 
org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:165) 

       at 
org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:172) 

       ... 33 more
Caused by: org.apache.jackrabbit.core.state.ItemStateException: 
committing change log failed
       at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:305) 

       at 
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675) 

       at 
org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162) 

       ... 34 more
Caused by: java.sql.SQLException: Non vi sono altri dati da leggere nel 
socket
       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
     at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1160)
       at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:963)
       at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
       at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:104)
       at oracle.jdbc.ttc7.TTC7Protocol.commit(TTC7Protocol.java:449)
       at 
oracle.jdbc.driver.OracleConnection.commit(OracleConnection.java:1409)
       at 
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:301) 

       ... 36 more

This happens when the database is restarted and no other operation on 
jackrabbit is performed before.

And about the possibility to use jboss datasource is a bad solution for you?

Thanks
Adamo

Stefan Guggisberg ha scritto:
> hi adamo,
>
> On 9/21/07, Adamo Bozzetti <ad...@abfidee.it> wrote:
>   
>> Hi all,
>> I'm using jackrabbit deployed on jboss 4.0.3 sp1 in a model 2
>> configuration and i use Oracle 10g as db persistence layer. I'm using
>> jackrabbit 1.2.3 and jdbc driver ojdbc14.jar.
>> When i configure the persistence manager accessing directly the db with
>> a configuration like this:
>>  <PersistenceManager
>> class="org.apache.jackrabbit.core.state.db.OraclePersistenceManager">
>>           <param name="driver" value="oracle.jdbc.OracleDriver"/>
>>           <param name="url"
>> value="jdbc:oracle:thin:@192.168.1.3:1521:abftest"/>
>>           <param name="user" value="jackrabbit"/>
>>           <param name="password" value="password"/>
>>           <param name="schema" value="oracle"/>
>>           <param name="schemaObjectPrefix" value="dmarea_"/>
>>           <param name="externalBLOBs" value="true"/>
>>   </PersistenceManager>
>> there are no proglems in normal use, but when the db is stopped for the
>> back up operation and then restarted, i noticed that the connection are
>> non refreshed correctly, so i prefer to use the data source managed
>>     
>
> what do you mean by "not refreshed correctly"? could you please elaborate?
>
> as of jackrabbit 1.2.1 broken connections should be automatically reestablished.
> for more details see http://issues.apache.org/jira/browse/JCR-645
>
> cheers
> stefan
>
>
>   
>> directly by the application server. But if i use a data source of jboss
>> in a configuration like this:
>>      <PersistenceManager
>> class="org.apache.jackrabbit.core.state.db.JNDIDatabasePersistenceManager">
>>           <param name="dataSourceLocation" value="java:/JackRabbitDS"/>
>>           <param name="schema" value="oracle"/>
>>           <param name="schemaObjectPrefix" value="dmarea_"/>
>>           <param name="externalBLOBs" value="true"/>
>>         </PersistenceManager>
>> I have problem writing node state because the dimension of the blob
>> excedes the mazimum length, the stacktrace is below:
>> 2007-09-21 14:33:36,687 ERROR
>> [org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager]
>> failed to write node state: 7b5eaf19-85eb-4392-8d4e-0d8b183b8138
>> java.sql.SQLException: La dimensione dei dati è superiore alla
>> dimensione massima per questo tipo: 1024 (The dimension of data is above
>> the maximun length for this type)
>>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
>>         at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
>>         at
>> oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2445)
>>         at
>> oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1170)
>>         at
>> oracle.jdbc.driver.OraclePreparedStatement.setBytes(OraclePreparedStatement.java:2212)
>>         at
>> oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3006)
>>         at
>> oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3221)
>>         at
>> org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:432)
>>         at
>> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:831)
>>         at
>> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:427)
>>         at
>> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:82)
>>         at
>> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:274)
>>         at
>> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675)
>>         at
>> org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162)
>>         at
>> org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:172)
>>         at
>> org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:315)
>>         at
>> org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
>>         at
>> org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233)
>>         at
>> org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764)
>>         at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340)
>>         at
>> org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)
>>         at
>> org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346)
>>         at
>> org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
>>         at
>> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
>>         at
>> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
>>         at
>> org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
>>         at
>> org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
>>         at org.jboss.ejb.Container.invoke(Container.java:873)
>>
>> I have already seen this problem using jboss datasource managing blob
>> data, but it can be solved using the underlying connection instead of
>> the wrapped connection of jboss.
>> I search in the list but i don't find anything for this.
>> Can anyone help me?
>> Thank you in advance.
>>
>> --
>> Adamo Bozzetti
>> ABF Ideee snc
>> Corso Matteotti, 10
>> 26100 CREMONA
>> tel. 0372/800746
>> fax  0372/800746
>> e-mail: adamo.bozzetti@abfidee.it
>> url: www.abfidee.it
>>
>> Le informazioni contenute nella presente e-mail e nei documenti eventualmente allegati sono confidenziali e sono comunque  riservate al destinatario delle stesse.
>> La loro diffusione, distribuzione e/o copia da parte di terzi è proibita e può costituire violazione della normativa che tutela il diritto alla privacy.
>> Se avete ricevuto questa comunicazione per errore, Vi preghiamo di informare immediatamente il mittente del messaggio e di distruggere questa e-mail.
>> ________________________________________________________________________________________
>> This e-mail is confidential and it is legally privileged.
>> If you have received it in error, please notify us immediately by reply e-mail and then delete this message from your system.
>> Please do not copy it or use it for any purposes, or disclose its contents to any other person.
>> Mind that to do so could be a breach of Italian privacy Law.
>> Thank you for your co-operation.
>>
>>
>>     
>
>   


-- 
Adamo Bozzetti
ABF Ideee snc
Corso Matteotti, 10
26100 CREMONA
tel. 0372/800746
fax  0372/800746
e-mail: adamo.bozzetti@abfidee.it
url: www.abfidee.it

Le informazioni contenute nella presente e-mail e nei documenti eventualmente allegati sono confidenziali e sono comunque  riservate al destinatario delle stesse.
La loro diffusione, distribuzione e/o copia da parte di terzi è proibita e può costituire violazione della normativa che tutela il diritto alla privacy.
Se avete ricevuto questa comunicazione per errore, Vi preghiamo di informare immediatamente il mittente del messaggio e di distruggere questa e-mail.
________________________________________________________________________________________
This e-mail is confidential and it is legally privileged.
If you have received it in error, please notify us immediately by reply e-mail and then delete this message from your system.
Please do not copy it or use it for any purposes, or disclose its contents to any other person.
Mind that to do so could be a breach of Italian privacy Law.
Thank you for your co-operation.


Re: Problem with jboss datasource

Posted by Stefan Guggisberg <st...@gmail.com>.
hi adamo,

On 9/21/07, Adamo Bozzetti <ad...@abfidee.it> wrote:
> Hi all,
> I'm using jackrabbit deployed on jboss 4.0.3 sp1 in a model 2
> configuration and i use Oracle 10g as db persistence layer. I'm using
> jackrabbit 1.2.3 and jdbc driver ojdbc14.jar.
> When i configure the persistence manager accessing directly the db with
> a configuration like this:
>  <PersistenceManager
> class="org.apache.jackrabbit.core.state.db.OraclePersistenceManager">
>           <param name="driver" value="oracle.jdbc.OracleDriver"/>
>           <param name="url"
> value="jdbc:oracle:thin:@192.168.1.3:1521:abftest"/>
>           <param name="user" value="jackrabbit"/>
>           <param name="password" value="password"/>
>           <param name="schema" value="oracle"/>
>           <param name="schemaObjectPrefix" value="dmarea_"/>
>           <param name="externalBLOBs" value="true"/>
>   </PersistenceManager>
> there are no proglems in normal use, but when the db is stopped for the
> back up operation and then restarted, i noticed that the connection are
> non refreshed correctly, so i prefer to use the data source managed

what do you mean by "not refreshed correctly"? could you please elaborate?

as of jackrabbit 1.2.1 broken connections should be automatically reestablished.
for more details see http://issues.apache.org/jira/browse/JCR-645

cheers
stefan


> directly by the application server. But if i use a data source of jboss
> in a configuration like this:
>      <PersistenceManager
> class="org.apache.jackrabbit.core.state.db.JNDIDatabasePersistenceManager">
>           <param name="dataSourceLocation" value="java:/JackRabbitDS"/>
>           <param name="schema" value="oracle"/>
>           <param name="schemaObjectPrefix" value="dmarea_"/>
>           <param name="externalBLOBs" value="true"/>
>         </PersistenceManager>
> I have problem writing node state because the dimension of the blob
> excedes the mazimum length, the stacktrace is below:
> 2007-09-21 14:33:36,687 ERROR
> [org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager]
> failed to write node state: 7b5eaf19-85eb-4392-8d4e-0d8b183b8138
> java.sql.SQLException: La dimensione dei dati è superiore alla
> dimensione massima per questo tipo: 1024 (The dimension of data is above
> the maximun length for this type)
>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
>         at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
>         at
> oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2445)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1170)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.setBytes(OraclePreparedStatement.java:2212)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3006)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:3221)
>         at
> org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:432)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.executeStmt(DatabasePersistenceManager.java:831)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:427)
>         at
> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:82)
>         at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:274)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:675)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162)
>         at
> org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:172)
>         at
> org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:315)
>         at
> org.apache.jackrabbit.jca.TransactionBoundXAResource.commit(TransactionBoundXAResource.java:39)
>         at
> org.jboss.tm.TransactionImpl$Resource.commit(TransactionImpl.java:2233)
>         at
> org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1764)
>         at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:340)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346)
>         at
> org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
>         at
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
>         at
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
>         at
> org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
>         at
> org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
>         at org.jboss.ejb.Container.invoke(Container.java:873)
>
> I have already seen this problem using jboss datasource managing blob
> data, but it can be solved using the underlying connection instead of
> the wrapped connection of jboss.
> I search in the list but i don't find anything for this.
> Can anyone help me?
> Thank you in advance.
>
> --
> Adamo Bozzetti
> ABF Ideee snc
> Corso Matteotti, 10
> 26100 CREMONA
> tel. 0372/800746
> fax  0372/800746
> e-mail: adamo.bozzetti@abfidee.it
> url: www.abfidee.it
>
> Le informazioni contenute nella presente e-mail e nei documenti eventualmente allegati sono confidenziali e sono comunque  riservate al destinatario delle stesse.
> La loro diffusione, distribuzione e/o copia da parte di terzi è proibita e può costituire violazione della normativa che tutela il diritto alla privacy.
> Se avete ricevuto questa comunicazione per errore, Vi preghiamo di informare immediatamente il mittente del messaggio e di distruggere questa e-mail.
> ________________________________________________________________________________________
> This e-mail is confidential and it is legally privileged.
> If you have received it in error, please notify us immediately by reply e-mail and then delete this message from your system.
> Please do not copy it or use it for any purposes, or disclose its contents to any other person.
> Mind that to do so could be a breach of Italian privacy Law.
> Thank you for your co-operation.
>
>