-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Issue calling stored procedure
PostPosted: Mon Mar 29, 2010 11:52 am 
Newbie

Joined: Mon Mar 29, 2010 10:36 am
Posts: 2
Hi,

I'm having problems calling third party Sybase (12.5) stored procedures from my web application.

I'm using Hibernate within the SEAM environment (JPA rather than direct to hibernate)...
[Version] Hibernate Annotations 3.3.0.GA
[Environment] Hibernate 3.2.4.sp1
[Version] Hibernate EntityManager 3.3.1.GA
JConnect version: JConnect 6

My stored proc call:
entityManager.createNativeQuery(
"exec ExtInsertAdhocCharge :accountId, :date, :amount, :reference, :adviserId, :ttypId")
.setParameter("accountId", adhocFeeTransaction.getAccountId())
.setParameter("date", adhocFeeTransaction.getEffectiveOn())
.setParameter("amount", adhocFeeTransaction.getFees().get(0).getAmount())
.setParameter("reference", adhocFeeTransaction.getReference())
.setParameter("adviserId", adhocFeeTransaction.getFees().get(0).getOutletId())
.setParameter("ttypId", ttypId)
.executeUpdate();

The problem I am having with the call is that I get the following error...

14:52:43,822 ERROR [JDBCExceptionReporter] Stored procedure 'ExtInsertAdhocCharge' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.
14:52:43,822 WARN [AccountDAO] exception during insert of adhoc fee transaction
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query

I therefore tried adding "SET CHAINED OFF" in various ways i.e.
- As part of the actual entityManager.createNativeQuery("SET CHAINED OFF exec ExtInsertAdhocCharge :accountId, :date, :amount, :reference, :adviserId, :ttypId")
- Before the actual call to the stored proc i.e.
entityManager.createNativeQuery("SET CHAINED OFF").executeUpdate();
entityManager.createNativeQuery(
"exec ExtInsertAdhocCharge :accountId, :date, :amount, :reference, :adviserId, :ttypId")
.setParameter("accountId", adhocFeeTransaction.getAccountId())
.setParameter("date", adhocFeeTransaction.getEffectiveOn())
.setParameter("amount", adhocFeeTransaction.getFees().get(0).getAmount())
.setParameter("reference", adhocFeeTransaction.getReference())
.setParameter("adviserId", adhocFeeTransaction.getFees().get(0).getOutletId())
.setParameter("ttypId", ttypId)
.executeUpdate();

In both cases I get the following error and warnings:
Hibernate:

SET
CHAINED OFF
14:56:38,558 WARN [JDBCExceptionReporter] SQL Error: 226, SQLState: ZZZZZ
14:56:38,558 ERROR [JDBCExceptionReporter] SET CHAINED command not allowed within multi-statement transaction.

14:56:38,558 WARN [AccountDAO] exception during insert of adhoc fee transaction
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query

Note that my stored procedure has the following: EXEC sp_procxmode 'ExtInsertAdhocCharge','unchained' when it's compiled into the database.

After further Googling I found the following on these forums...
viewtopic.php?p=2202295

Key point here being the use of the parameter "SERVER_INITIATED_TRANSACTIONS=false" on the JDBC URL. I tried this (without the SET CHAINED OFF) and it worked fine. However, I now get warning messages whenever the database is hit and a query run i.e. not just when my stored procedure is called:
15:09:03,719 WARN [JDBCExceptionReporter] SQL Warning: 0, SQLState: 010CP
15:09:03,719 WARN [JDBCExceptionReporter] 010CP: AutoCommit option has changed to true. All pending statements on this transaction (if any) are committed.

Should I be concerned about this?

Also, is there an alternative to using the "SERVER_INITIATED_TRANSACTIONS=false" solution?

Any thoughts/suggestions greatly appreciated.

Thanks!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.