I did a quick search on Internet and found something regarding this message. It is with a different product but it may apply to JBoss too.
In fact, the way Expresso deals with the autocommit mode is not compliant
with Sybase :
when it releases a connection, DBConnectionPool first tests the
autocommit and then put it backs to true if it is false. This doesn't
work because with Sybase CHAINED mode, calling getAutommitMode starts a
new transaction. So you cannot call setAutoCommit(true) without
rollbacking/comitting before (it throws a SQLException with the message
"SET CHAINED command not allowed within multi-statement transaction").
This only way to work properly with Sybase is to call rollback (to be
sure there is no more transaction) and then setAutocommit(true). This is
what Poolman and Jakarta DBCP do and it is OK,
there is an other problem : DBObject delete method implicitly tries to
start a new transaction before deleting detail record. This cannot work
if you are already inside an explicit transaction. The same SQL
Exception is thrown ...
Are these problem solve by Expresso new release ?
This is fixed in more recent versions of jboss. I'm not sure about 3.0.1 but both cvs versions for sure. I recommend 3.1, ds config is much simpler.