You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Neil Jianguo Zhou <ne...@gmail.com> on 2005/10/26 07:12:36 UTC

OJB configuration problem on jboss

Hi there,

I use pure Servlet/JSP based code, not including any EJB based code, under JBoss app server. Use non-managed environment configuration same as other pure servlet container, such as Resin, but accessing database became unstable. It will sometimes throw exception:

- ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound

However, everything is ok under other servlet container, like Resin.

The non-managed environment configuration is following:

1. In OJB.properties:
- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory

2. In repository_database.xml:
<jdbc-connection-descriptor 
    jcd-alias="default" 
    default-connection="true" 
    platform="Oracle9i" 
    jdbc-level="2.0" 
    driver="oracle.jdbc.driver.OracleDriver" 
    protocol="jdbc" 
    subprotocol="oracle" 
    dbalias="thin:@localhost:1521:orains1" 
    username="scott" 
    password="tiger" 
    eager-release="false" 
    batch-mode="true" 
    useAutoCommit="0" 
    ignoreAutoCommitExceptions="false">

    <object-cache class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
        <attribute attribute-name="timeout" attribute-value="900"/>
        <attribute attribute-name="autoSync" attribute-value="true"/>
    </object-cache>

    <connection-pool maxActive="21" validationQuery=""/>

    <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
        <attribute attribute-name="grabSize" attribute-value="20"/>
        <attribute attribute-name="autoNaming" attribute-value="true"/>
        <attribute attribute-name="globalSequenceId" attribute-value="false"/>
        <attribute attribute-name="globalSequenceStart" attribute-value="10000"/>
    </sequence-manager>

</jdbc-connection-descriptor>


When I change to managed environment configuration, and run again. It throws another different exception:

- ERROR [TranslationUtil] Cannot pre-load translation cache java.lang.UnsupportedOperationException: In managed environments only JTA transaction demarcation allowed

This kind of error *always* occurs, not as *sometimes*, mentioned above.

The managed environment configuration is following:

1. In OJB.properties:
- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory

2. In repository_database.xml:
(Same as above non-managed environment configuration)


Not changing any code is preferred, I want to just modify some configuration to go. Can anyone tell me how to deal with? Any comments would be very welcome.

Thanks,
Neil


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB configuration problem on jboss

Posted by Zhou Neil Jianguo <ne...@gmail.com>.
Hi Armin,

2005/10/26, Armin Waibel <ar...@apache.org>:
> Neil Jianguo Zhou wrote:
> > Hi Armin,
> >
> > It always occurs on same sql, and be reproduceable. It seems a code error,
> > even I doubt the prepared sql statement. However, it works fine in Resin+Oracle.
> >
>
> Is the statement generated by OJB or by a user query (if so please post it)?

It's user query. The sql is:
<==(sql text begin)==
SELECT DISTINCT 'BUYER' org_role_code
  FROM core_party_relationship
 WHERE subject_party_id = ?
   AND relationship_type_code = 'BUYER_SUPPLIER'

UNION

SELECT DISTINCT 'SUPPLIER' org_role_code
  FROM core_party_relationship
 WHERE object_party_id = ?
   AND relationship_type_code = 'BUYER_SUPPLIER'
==(sql text end)==>

>
> Does batch-mode="false" setting influence the issue?
>
> Does setting
> ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl
> influence the issue?

All do not influence the issue, failed as former. I'd tried the
following setting:
1)batch-mode="false"
  ConnectionFactoryClass=xx.xx.ConnectionFactoryPooledImpl
2)batch-mode="false"
  ConnectionFactoryClass=xx.xx.ConnectionFactoryDBCPImpl
3)batch-mode="true"
  ConnectionFactoryClass=xx.xx.ConnectionFactoryPooledImpl

>
> Do you use shared libraries (e.g. commons-dbcp) or do you bundle all
> libraries in the webApp (.war file)?

Yes, I do package all required jakarta commons libraries,
including commons-dbcp.jar. and bundle all libraries in one .war file
put into WEB-INF/lib directory.

>
>
> > Is some neccessary configurations missing?
>
> I don't notice a configuration error in your settings. The
> java.lang.UnsupportedOperationException in managed configuration (I
> assume) is a result of using OJB's transaction demarcation (e.g.
> PB.beginTransaction call) instead of using JTA-transaction demarcation.

So great. I agree with your viewpoint. I'd also looked other archived
doc up in mail lists. Thank you much.

Regards,
Neil

>
> regards,
> Armin
>
> >
> > Before occurs the ORA-01008 error, there're some doubtful info in JBosss+Oracle.
> > But there're not this kind of info in Resin+Oracle. FYI:
> >
> > - INFO  [ObjectCacheDefaultImpl] Setup cache: org.apache.ojb.broker.cache.ObjectCacheDefaultImpl@1ca69a5[timeout=900000,useSoftReferences=true,cachingKeyType=0,useAutoSync=true]
> > - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
> > - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> > - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
> > - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> > - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 176 traced (potentially modified) objects from cache
> > - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> > - ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
> >
> > thanks,
> > Neil
> >
> > -----Original Message-----
> > From: Armin Waibel [mailto:arminw@apache.org]
> > Sent: Wednesday, October 26, 2005 4:29 PM
> > To: OJB Users List
> > Subject: Re: OJB configuration problem on jboss
> >
> >
> > Hi Neil,
> >
> > this is a really strange error, seems that Oracle detect an
> > objectionable number of bound variables in a prepared statement.
> > You said that this error message doesn't arise in Resin+Oracle, thus it
> > can't be a problem of OJB's sql generator.
> >
> > Does always the same error occur (same sql statement) or does it occur
> > for different sql statements? Is the error reproduceable or does it
> > occur random?
> > If the error occur for different statements and arise radom, then the
> > issue can be a concurrency problem - e.g. different threads using the
> > same PB instance at the same time.
> >
> > regards,
> > Armin
> >
> >
> > Neil Jianguo Zhou wrote:
> >
> >>Hi there,
> >>
> >>I use pure Servlet/JSP based code, not including any EJB based code, under JBoss app server. Use non-managed environment configuration same as other pure servlet container, such as Resin, but accessing database became unstable. It will sometimes throw exception:
> >>
> >>- ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
> >>
> >>However, everything is ok under other servlet container, like Resin.
> >>
> >>The non-managed environment configuration is following:
> >>
> >>1. In OJB.properties:
> >>- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> >>- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
> >>- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> >>
> >>2. In repository_database.xml:
> >><jdbc-connection-descriptor
> >>    jcd-alias="default"
> >>    default-connection="true"
> >>    platform="Oracle9i"
> >>    jdbc-level="2.0"
> >>    driver="oracle.jdbc.driver.OracleDriver"
> >>    protocol="jdbc"
> >>    subprotocol="oracle"
> >>    dbalias="thin:@localhost:1521:orains1"
> >>    username="scott"
> >>    password="tiger"
> >>    eager-release="false"
> >>    batch-mode="true"
> >>    useAutoCommit="0"
> >>    ignoreAutoCommitExceptions="false">
> >>
> >>    <object-cache class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
> >>        <attribute attribute-name="timeout" attribute-value="900"/>
> >>        <attribute attribute-name="autoSync" attribute-value="true"/>
> >>    </object-cache>
> >>
> >>    <connection-pool maxActive="21" validationQuery=""/>
> >>
> >>    <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
> >>        <attribute attribute-name="grabSize" attribute-value="20"/>
> >>        <attribute attribute-name="autoNaming" attribute-value="true"/>
> >>        <attribute attribute-name="globalSequenceId" attribute-value="false"/>
> >>        <attribute attribute-name="globalSequenceStart" attribute-value="10000"/>
> >>    </sequence-manager>
> >>
> >></jdbc-connection-descriptor>
> >>
> >>
> >>When I change to managed environment configuration, and run again. It throws another different exception:
> >>
> >>- ERROR [TranslationUtil] Cannot pre-load translation cache java.lang.UnsupportedOperationException: In managed environments only JTA transaction demarcation allowed
> >>
> >>This kind of error *always* occurs, not as *sometimes*, mentioned above.
> >>
> >>The managed environment configuration is following:
> >>
> >>1. In OJB.properties:
> >>- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
> >>- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
> >>- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> >>
> >>2. In repository_database.xml:
> >>(Same as above non-managed environment configuration)
> >>
> >>
> >>Not changing any code is preferred, I want to just modify some configuration to go. Can anyone tell me how to deal with? Any comments would be very welcome.
> >>
> >>Thanks,
> >>Neil
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> >>For additional commands, e-mail: ojb-user-help@db.apache.org
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> > For additional commands, e-mail: ojb-user-help@db.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB configuration problem on jboss

Posted by Armin Waibel <ar...@apache.org>.
Neil Jianguo Zhou wrote:
> Hi Armin,
> 
> It always occurs on same sql, and be reproduceable. It seems a code error, 
> even I doubt the prepared sql statement. However, it works fine in Resin+Oracle.
> 

Is the statement generated by OJB or by a user query (if so please post it)?

Does batch-mode="false" setting influence the issue?

Does setting
ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl
influence the issue?

Do you use shared libraries (e.g. commons-dbcp) or do you bundle all 
libraries in the webApp (.war file)?


> Is some neccessary configurations missing?

I don't notice a configuration error in your settings. The 
java.lang.UnsupportedOperationException in managed configuration (I 
assume) is a result of using OJB's transaction demarcation (e.g. 
PB.beginTransaction call) instead of using JTA-transaction demarcation.

regards,
Armin

> 
> Before occurs the ORA-01008 error, there're some doubtful info in JBosss+Oracle.
> But there're not this kind of info in Resin+Oracle. FYI:
> 
> - INFO  [ObjectCacheDefaultImpl] Setup cache: org.apache.ojb.broker.cache.ObjectCacheDefaultImpl@1ca69a5[timeout=900000,useSoftReferences=true,cachingKeyType=0,useAutoSync=true]
> - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
> - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
> - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> - INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 176 traced (potentially modified) objects from cache
> - INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
> - ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
> 
> thanks,
> Neil
> 
> -----Original Message-----
> From: Armin Waibel [mailto:arminw@apache.org]
> Sent: Wednesday, October 26, 2005 4:29 PM
> To: OJB Users List
> Subject: Re: OJB configuration problem on jboss
> 
> 
> Hi Neil,
> 
> this is a really strange error, seems that Oracle detect an 
> objectionable number of bound variables in a prepared statement.
> You said that this error message doesn't arise in Resin+Oracle, thus it 
> can't be a problem of OJB's sql generator.
> 
> Does always the same error occur (same sql statement) or does it occur 
> for different sql statements? Is the error reproduceable or does it 
> occur random?
> If the error occur for different statements and arise radom, then the 
> issue can be a concurrency problem - e.g. different threads using the 
> same PB instance at the same time.
> 
> regards,
> Armin
> 
> 
> Neil Jianguo Zhou wrote:
> 
>>Hi there,
>>
>>I use pure Servlet/JSP based code, not including any EJB based code, under JBoss app server. Use non-managed environment configuration same as other pure servlet container, such as Resin, but accessing database became unstable. It will sometimes throw exception:
>>
>>- ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
>>
>>However, everything is ok under other servlet container, like Resin.
>>
>>The non-managed environment configuration is following:
>>
>>1. In OJB.properties:
>>- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
>>- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
>>- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
>>
>>2. In repository_database.xml:
>><jdbc-connection-descriptor 
>>    jcd-alias="default" 
>>    default-connection="true" 
>>    platform="Oracle9i" 
>>    jdbc-level="2.0" 
>>    driver="oracle.jdbc.driver.OracleDriver" 
>>    protocol="jdbc" 
>>    subprotocol="oracle" 
>>    dbalias="thin:@localhost:1521:orains1" 
>>    username="scott" 
>>    password="tiger" 
>>    eager-release="false" 
>>    batch-mode="true" 
>>    useAutoCommit="0" 
>>    ignoreAutoCommitExceptions="false">
>>
>>    <object-cache class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
>>        <attribute attribute-name="timeout" attribute-value="900"/>
>>        <attribute attribute-name="autoSync" attribute-value="true"/>
>>    </object-cache>
>>
>>    <connection-pool maxActive="21" validationQuery=""/>
>>
>>    <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
>>        <attribute attribute-name="grabSize" attribute-value="20"/>
>>        <attribute attribute-name="autoNaming" attribute-value="true"/>
>>        <attribute attribute-name="globalSequenceId" attribute-value="false"/>
>>        <attribute attribute-name="globalSequenceStart" attribute-value="10000"/>
>>    </sequence-manager>
>>
>></jdbc-connection-descriptor>
>>
>>
>>When I change to managed environment configuration, and run again. It throws another different exception:
>>
>>- ERROR [TranslationUtil] Cannot pre-load translation cache java.lang.UnsupportedOperationException: In managed environments only JTA transaction demarcation allowed
>>
>>This kind of error *always* occurs, not as *sometimes*, mentioned above.
>>
>>The managed environment configuration is following:
>>
>>1. In OJB.properties:
>>- PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
>>- ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
>>- JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
>>
>>2. In repository_database.xml:
>>(Same as above non-managed environment configuration)
>>
>>
>>Not changing any code is preferred, I want to just modify some configuration to go. Can anyone tell me how to deal with? Any comments would be very welcome.
>>
>>Thanks,
>>Neil
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


RE: OJB configuration problem on jboss

Posted by Neil Jianguo Zhou <ne...@gmail.com>.
Hi Armin,

It always occurs on same sql, and be reproduceable. It seems a code error, 
even I doubt the prepared sql statement. However, it works fine in Resin+Oracle.

Is some neccessary configurations missing?

Before occurs the ORA-01008 error, there're some doubtful info in JBosss+Oracle.
But there're not this kind of info in Resin+Oracle. FYI:

- INFO  [ObjectCacheDefaultImpl] Setup cache: org.apache.ojb.broker.cache.ObjectCacheDefaultImpl@1ca69a5[timeout=900000,useSoftReferences=true,cachingKeyType=0,useAutoSync=true]
- INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
- INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
- INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 7 traced (potentially modified) objects from cache
- INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
- INFO  [ObjectCacheDefaultImpl] tx was aborted, remove 176 traced (potentially modified) objects from cache
- INFO  [ConnectionManagerImpl] Rollback was called, do rollback on current connection org.apache.commons.dbcp.PoolableConnection@1de06ec
- ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound

thanks,
Neil

-----Original Message-----
From: Armin Waibel [mailto:arminw@apache.org]
Sent: Wednesday, October 26, 2005 4:29 PM
To: OJB Users List
Subject: Re: OJB configuration problem on jboss


Hi Neil,

this is a really strange error, seems that Oracle detect an 
objectionable number of bound variables in a prepared statement.
You said that this error message doesn't arise in Resin+Oracle, thus it 
can't be a problem of OJB's sql generator.

Does always the same error occur (same sql statement) or does it occur 
for different sql statements? Is the error reproduceable or does it 
occur random?
If the error occur for different statements and arise radom, then the 
issue can be a concurrency problem - e.g. different threads using the 
same PB instance at the same time.

regards,
Armin


Neil Jianguo Zhou wrote:
> Hi there,
> 
> I use pure Servlet/JSP based code, not including any EJB based code, under JBoss app server. Use non-managed environment configuration same as other pure servlet container, such as Resin, but accessing database became unstable. It will sometimes throw exception:
> 
> - ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
> 
> However, everything is ok under other servlet container, like Resin.
> 
> The non-managed environment configuration is following:
> 
> 1. In OJB.properties:
> - PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> - ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
> - JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> 
> 2. In repository_database.xml:
> <jdbc-connection-descriptor 
>     jcd-alias="default" 
>     default-connection="true" 
>     platform="Oracle9i" 
>     jdbc-level="2.0" 
>     driver="oracle.jdbc.driver.OracleDriver" 
>     protocol="jdbc" 
>     subprotocol="oracle" 
>     dbalias="thin:@localhost:1521:orains1" 
>     username="scott" 
>     password="tiger" 
>     eager-release="false" 
>     batch-mode="true" 
>     useAutoCommit="0" 
>     ignoreAutoCommitExceptions="false">
> 
>     <object-cache class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
>         <attribute attribute-name="timeout" attribute-value="900"/>
>         <attribute attribute-name="autoSync" attribute-value="true"/>
>     </object-cache>
> 
>     <connection-pool maxActive="21" validationQuery=""/>
> 
>     <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
>         <attribute attribute-name="grabSize" attribute-value="20"/>
>         <attribute attribute-name="autoNaming" attribute-value="true"/>
>         <attribute attribute-name="globalSequenceId" attribute-value="false"/>
>         <attribute attribute-name="globalSequenceStart" attribute-value="10000"/>
>     </sequence-manager>
> 
> </jdbc-connection-descriptor>
> 
> 
> When I change to managed environment configuration, and run again. It throws another different exception:
> 
> - ERROR [TranslationUtil] Cannot pre-load translation cache java.lang.UnsupportedOperationException: In managed environments only JTA transaction demarcation allowed
> 
> This kind of error *always* occurs, not as *sometimes*, mentioned above.
> 
> The managed environment configuration is following:
> 
> 1. In OJB.properties:
> - PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
> - ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
> - JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> 
> 2. In repository_database.xml:
> (Same as above non-managed environment configuration)
> 
> 
> Not changing any code is preferred, I want to just modify some configuration to go. Can anyone tell me how to deal with? Any comments would be very welcome.
> 
> Thanks,
> Neil
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


Re: OJB configuration problem on jboss

Posted by Armin Waibel <ar...@apache.org>.
Hi Neil,

this is a really strange error, seems that Oracle detect an 
objectionable number of bound variables in a prepared statement.
You said that this error message doesn't arise in Resin+Oracle, thus it 
can't be a problem of OJB's sql generator.

Does always the same error occur (same sql statement) or does it occur 
for different sql statements? Is the error reproduceable or does it 
occur random?
If the error occur for different statements and arise radom, then the 
issue can be a concurrency problem - e.g. different threads using the 
same PB instance at the same time.

regards,
Armin


Neil Jianguo Zhou wrote:
> Hi there,
> 
> I use pure Servlet/JSP based code, not including any EJB based code, under JBoss app server. Use non-managed environment configuration same as other pure servlet container, such as Resin, but accessing database became unstable. It will sometimes throw exception:
> 
> - ERROR [JdbcAccessImpl] SQLException during the execution of the SQL query: SELECT xxx FROM xxx WHERE xxx, message is: ORA-01008: not all variables bound
> 
> However, everything is ok under other servlet container, like Resin.
> 
> The non-managed environment configuration is following:
> 
> 1. In OJB.properties:
> - PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> - ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
> - JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> 
> 2. In repository_database.xml:
> <jdbc-connection-descriptor 
>     jcd-alias="default" 
>     default-connection="true" 
>     platform="Oracle9i" 
>     jdbc-level="2.0" 
>     driver="oracle.jdbc.driver.OracleDriver" 
>     protocol="jdbc" 
>     subprotocol="oracle" 
>     dbalias="thin:@localhost:1521:orains1" 
>     username="scott" 
>     password="tiger" 
>     eager-release="false" 
>     batch-mode="true" 
>     useAutoCommit="0" 
>     ignoreAutoCommitExceptions="false">
> 
>     <object-cache class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
>         <attribute attribute-name="timeout" attribute-value="900"/>
>         <attribute attribute-name="autoSync" attribute-value="true"/>
>     </object-cache>
> 
>     <connection-pool maxActive="21" validationQuery=""/>
> 
>     <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
>         <attribute attribute-name="grabSize" attribute-value="20"/>
>         <attribute attribute-name="autoNaming" attribute-value="true"/>
>         <attribute attribute-name="globalSequenceId" attribute-value="false"/>
>         <attribute attribute-name="globalSequenceStart" attribute-value="10000"/>
>     </sequence-manager>
> 
> </jdbc-connection-descriptor>
> 
> 
> When I change to managed environment configuration, and run again. It throws another different exception:
> 
> - ERROR [TranslationUtil] Cannot pre-load translation cache java.lang.UnsupportedOperationException: In managed environments only JTA transaction demarcation allowed
> 
> This kind of error *always* occurs, not as *sometimes*, mentioned above.
> 
> The managed environment configuration is following:
> 
> 1. In OJB.properties:
> - PersistenceBrokerFactoryClass=org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl
> - ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl
> - JTATransactionManagerClass=org.apache.ojb.broker.transaction.tm.JBossTransactionManagerFactory
> 
> 2. In repository_database.xml:
> (Same as above non-managed environment configuration)
> 
> 
> Not changing any code is preferred, I want to just modify some configuration to go. Can anyone tell me how to deal with? Any comments would be very welcome.
> 
> Thanks,
> Neil
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org