Hi,

we are successfully using Sybase with PersistenceBroker (no ODMG) however this shouldn't be a problem.

depending on your Sybase version you should try to use platform="SybaseASE" instead of "Sybase" in your connection descriptor.

this solved our problems (we also were using platform="Sybase" at the beginning)

bye
danilo


Hi, I tried to use ojb with Sybase, it did not work.

but the same code worked fine with mysql and sql server.

I wanted to do an easy retrieve from the Sybase,I met an Exception that is "[org.apache.ojb.odmg.collections.DListImpl] ERROR: Generation of new id failed
ConnectionManager is NOT in transaction" .


Here is my code,xml and Exception , anyone can give me some clue to solve this problem which puzzle me two days.
CODE:
public static List retrieveBook(String bookName){
Implementation impl = OJB.getInstance();
Database db=impl.newDatabase();
try {
db.open("webpublishSybase",db.OPEN_READ_ONLY);
} catch (ODMGException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
List list=null;
Transaction tx = impl.newTransaction();
try{




tx.begin();
OQLQuery query = impl.newOQLQuery();
query.create("select results from "+Book.class.getName()+" where bookName like $1 ");
query.bind(bookName);
DList results = (DList) query.execute();
tx.commit();
list=results;



}catch(Exception e){
e.printStackTrace();
tx.abort();
}finally{
try {
db.close();
} catch (ODMGException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
}




return list;
}
REPOSITORY_DATABASE.XML
<jdbc-connection-descriptor
jcd-alias="webpublishMysql"
default-connection="false"
platform="MySQL"
jdbc-level="3.0"
useAutoCommit="2"
driver="org.gjt.mm.mysql.Driver"
protocol="jdbc"
subprotocol="mysql"
dbalias="//192.168.0.203/webpublish?seUnicode=true&amp;characterEncoding=gb2312"


          username="sa"
          password="nihao123"

   <connection-pool
       maxActive="5"
       maxIdle="2"
       maxWait="20000"
       minEvictableIdleTimeMillis="60000"
       numTestsPerEvictionRun="5"
       testOnBorrow="false"
       testOnReturn="false"
       testWhileIdle="true"
       timeBetweenEvictionRunsMillis="60000"
       whenExhaustedAction="2"

   />
   </jdbc-connection-descriptor>
   <jdbc-connection-descriptor
          jcd-alias="webpublishSybase"
          default-connection="true"
          platform="Sybase"
          jdbc-level="2.0"
       useAutoCommit="2"
          driver="com.inet.syb.SybDriver"
          protocol="jdbc"
          subprotocol="inetsyb"
          dbalias="192.168.0.251:5000?database=skdb"
          username="sa"
          password="nishizhuzhu"
       ignoreAutoCommitExceptions="false"


> <connection-pool maxActive="5" maxIdle="2" maxWait="20000" minEvictableIdleTimeMillis="60000" numTestsPerEvictionRun="5" testOnBorrow="false" testOnReturn="false" testWhileIdle="true" timeBetweenEvictionRunsMillis="60000" whenExhaustedAction="2"

/>

</jdbc-connection-descriptor>

Exception:
[org.apache.ojb.odmg.collections.DListImpl] ERROR: Generation of new id failed
ConnectionManager is NOT in transaction
org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager is NOT in transaction
at org.apache.ojb.broker.core.PersistenceBrokerImpl.abortTransaction(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction(Unknown ource)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction(Unknown Source)
at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequence(Unknown Source)
at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUniqueLong(Unknown Source)
at org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueValue(Unknown Source)
at org.apache.ojb.odmg.collections.DListImpl.generateNewId(Unknown Source)
at org.apache.ojb.odmg.collections.DListImpl.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)


at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at com.scholarbook.webpublish.Persist.ojb.Retrieve.retrieveBook(Retrieve.java:62)


at com.scholarbook.webpublish.Persist.ojb.Test.main(Test.java:28)
org.apache.ojb.broker.PersistenceBrokerException: org.apache.ojb.broker.PersistenceBrokerException: org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager is NOT in transaction
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
at com.scholarbook.webpublish.Persist.ojb.Retrieve.retrieveBook(Retrieve.java:62)


at com.scholarbook.webpublish.Persist.ojb.Test.main(Test.java:28)
Caused by: org.apache.ojb.broker.PersistenceBrokerException: org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager is NOT in transaction
at org.apache.ojb.odmg.collections.DListImpl.generateNewId(Unknown Source)
at org.apache.ojb.odmg.collections.DListImpl.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)


at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:306)
at java.lang.Class.newInstance(Class.java:259)
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
... 7 more
Caused by: org.apache.ojb.broker.TransactionNotInProgressException: ConnectionManager is NOT in transaction
at org.apache.ojb.broker.core.PersistenceBrokerImpl.abortTransaction(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.abortTransaction(Unknown Source)
at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequence(Unknown Source)
at org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUniqueLong(Unknown Source)
at org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueValue(Unknown Source)



--



Zhenwei


_________________________________________________________________
Let the new MSN Premium Internet Software make the most of your high-speed experience. http://join.msn.com/?pgmarket=en-us&page=byoa/prem&ST=1



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



--
Danilo Tommasina, Dipl. Ing. FH Telecom
Software Engineer
RCS Riskmanagement Concepts Systems AG
Technoparkstrasse 1
CH-8005 Zuerich
T: +41 1 445 29 08
[EMAIL PROTECTED]
www.risksys.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to