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&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]