Hibernate JDBC Debate

This might not be strictly a Java Programming question, but given the expertise and experience in this forum regarding OOD/Hibernate/JDBC I
thought it would be a useful place to post this. Apologies if you don't think this is the appropriate place.
Background: I work in MDA (model driven architecture) and the company I work for right now has implemented a system with UML for meta-modeling
and we use Hibernate and MySql for the resulting model's data repository. From that data we are generating documentation and multiple types of code.
We recently hired a co-op who has been railing against Hibernate since day one. He rails against the uses of reflection and insists that JDBC is much
better. He recently wrote me an email containing his 'research' and conclusions on the subject. I thought it would be interesting to see the
responses from people who have more experience than in development/OOD/Hibernate and so on.
My inline responses to his email are preceded by '[N]'.
(My initial reply, in addition to inline)
I mention this below, but I�ll also say this at the top here... You are looking at this from the database perspective. But the database only supports the
model. In fact, it is a result of the model. It gave us a convenient way of storing the model information (which is a common paradigm in MDA, btw).
Because we started with class modeling, it only makes sense to think in classes/objects.
--------------------------(Co-op's email)
Neil,
I�ve been doing some research in my free time on JDBC, and the MySQL-Connector/J driver. I�ve got a program that I�ve written in Java to do
[irrelevant task x] that uses a database. Just for the sake of comparison, I set up this program to use Hibernate; I read all of the relevant documentation
and created all of the pojos by hand (there weren�t many). After I completed that task, I created a tag in my CVS server, and ripped out all of the hibernate
code, so I was back to a clean slate with simply a JDBC connection maintained by my Database class. I re-implemented everything that I had done with methods such as �public void createSomeInformation(�) throws
SQLException�, and �public RecordSet getSomeInformation(�) throws SQLException� � these methods used java.sql.PreparedStatements to
execute SQL, and return RecordSet objects, which are essentially the result of any given SQL query that�s either a SELECT or otherwise returns
information in a table-format.
So, why did I go through this huge exercise? I was convinced that Hibernate wasn�t worth the effort; now I�ve got enough experience with both options to
discuss them intelligently. I hope you like a good healthy argument, because I feel pretty strongly about this particular topic, and I am very interested to see
what you have to say. This is what I�ve learned:
Hibernate is really, really cool if you want to pretend that databases are object-oriented. It sounds like a Java programmer�s wet dream, but consider
the following:
- Object oriented crap is still crap.
[N] So are you saying OOD is wrong?
- It hasn�t really taken all of the work out of writing software, because you had to make a UML model of the database to generate the pojos. If it weren�t for
the code generator, you�d have put that work in to writing pojos by hand. The XML file is also some finite amount of work to maintain.
[N] The XML generator was broken for NT. That�s why I had to unfortunately maintain stuff by hand. I�ve been working with GRI to fix these problems.
Secondly... The database isn�t the model. The model (UML) is the model. The database (as well as the Hibernate code) is the result of the model. We
didn�t design a database, then come up with a UML schema to create Pojos to access it. We designed the model, then generated the schema and pojos
to create a repository for the data.
- Hibernate relies heavily on reflection. We had the short version of this conversation a couple of weeks ago, but I�d like to qualify my distaste for
reflection. It isn�t inherently bad; it�s all about implementation. Hibernate uses reflection to watch for access to fields of a class, so it can lazily
populate them from the database.
[N] So what?
Let�s recap on some basic object oriented philosophies:
Object oriented philosophy 1: Classes have responsibilities. Bend this if you like, even break it if you�re sure it�s the right thing to do, but never forget
where it came from. If a class doesn�t have a responsibility, it doesn�t have a purpose. If it doesn�t have a purpose, its actions are irresponsible � if it isn�t
the classes job to do a task, it should not do that task!
[N] What tasks do the pojos have that you don�t think they should do?
Object oriented philosophy 2: Responsibilites are simple, and clearly defined. Complicated responsibilities mean complicated code. Everything
can be viewed as the sum of its parts, and the class structure should reflect that.
[N] What�s complicated about the pojos? They seem pretty simple to me.
Object oriented philosophy 3: Responsibilities are really, really simple. Like, so simple you can figure out what they are by looking at the name of the
class. Ask yourself, �What does a java.lang.String do?� What about a java.io.FileReader? Now, without cheating, tell me what a
com.airvana.sde.db.BuiltinTypePvtIface is.
[N] BuiltinTypePvtIface is not a class, it is an interface. So, you are trying to compare classes to an interface. Why is it unclear what a class like
ManagedObjectImpl, for example, is to you? Additionally, that interface it is a private interface that only the implementation class uses (BuiltinTypeImpl).
Ask ******(the original designer) why he did this. You�d get a better answer from him than me.
So what this all boils down to is that Hibernate is trying to take something that simply doesn�t fit in an object oriented world, and make objects out of it.
A database�s table can�t be a responsible java class; it�s not a java element, and to ask it to be one is absurd. Things that are java elements, however,
include the data types that the database uses. A set of these types can be put together to form a row. A set of rows can be put together to form a
ResultSet (which is different from a table, because a table is the authorative copy; it�s the database�s responsibility to maintain that).
[N] So, you�ve refuted, in a weekend�s worth of work, about 20 years (at least) of Object to relational mapping theory and application?
If you�re familiar with database normalization, you should know that step one is to remove duplicate data. There�s a similar strategy in object oriented
analysis/design, where you take a set of absurdly repetitive classes, and combine all of the things that are reusable.
Let�s pretend hibernate doesn�t need a specific format of pojos to operate, and we can define table classes however we want. If we were to look for the
commonality among table pojos, this might be what we come up with:
public class DatabaseField {
            public DatabaseField(String fieldname, Class fieldtype) {
                        // �
public class DatabaseTable {
            public DatabaseTable(String tableName, DatabaseField[] fields) {
                        // �
            public void insert(DatabaseField[] fields, Object[] values) {
                        // �
            public Object[] select(DatabaseField[] fields, �) {
                        // �
}I�m not going to finish implementing these classes, because I don�t really have any desire to use them, but they are still 100x more responsible than
any hibernate pojo ever could be.
Right now I�m anticipating the argument that hibernate pojos are responsible because the represent specific tables. Well, that may be true,
but it violates the reusability rule. The following code is re-used about 10,000 times:
        // Now make sure we have only one parent
        if(myParentCheck != 1)
            // this is not good, we have no parent
            // or more than one parent
            throw new java.lang.RuntimeException("Instance has no parent or more than one parent") ;
        return myCompParent.getCompositionRootElement();That only needs to be written once.
[N] This code is generated code... The point of code reusability is to prevent hand-written code from having to be written over and over again, thus
introducing errors. It�s a practicality issue and a debugging issue. If this
code wasn�t generated (therefore, guaranteed to be the same) then I�d agree
with you here.
Back to my original point: hibernate uses reflection to lazily initialize its data. If hibernate pojos looked like the model above, they wouldn�t need to use
reflection and lazy initialization, because they would all have a common format � perhaps even an interface that�s re-used more than once.
[N] You studied how to use hibernate, but you keep arguing against reflection, etc. You seem to be arguing more against Hibernate�s
design/implementation itself. Perhaps you should talk to Hibernate developers and delve into Hibernate�s design to see why it was done the
way it was done and speak to them on how to do it. I�m not expert in Hibernate�s design, so I�m not to person to talk to here.
I'm very interested to see other responses, both to the co-op and to myself (am I right, or completely wrong?). Your insights will be highly
valued.

It's hard for some coders to use 3rd party solutions
knowing they can write a better solution. Personally
I feel there's a bigger move away from this coding
style as it's expensive/time consuming/counter
productive and usually for very little advantage.True... In my case though, I found this easy to use, even coming in from "the cold" so to speak. I was using this particular solution only a few months
after learning Java.
While it may be expensive in terms of a code-base, that code base is bought with the push of a button from our modeling tool.
I could write the GUI without having to worry about implementing JDBC and such. Just use getters and setters and familiar java objects and "bang! Yer done".
Hibernate is a generic solution and so by this very
nature a bespoke solution would be better.The origins of this set-up come from a purposefully generic solution. It came from a MDA consulting company (of which I was originally part of <the plot
thickens, eh?>) that was developing this solution to be used by multiple customers, much like MindConstructor or AndroMDA.
If you take this argument one step further then why
use an RDBMs? Why not create your own persistence
implementation fine tuned to your application? I don't think there's any issue with using the RDB. I think we all feel here that it is a good solution. Plus, given the time constraints of the project to get it
operational, we didn't really have time to develop some sort of custom persistence implementation.
I believe for the same reasons that you would use
Hibernate - a code base in wide use will benefit from
better bug identification and resolution therefore
making a more stable platform.That is the one area where I have been working with the MDA company to improve. The generated code isn't bad, but it could be better.
Does that require that we throw it away and try to re-implement with a different solution though?

Similar Messages

  • Question on Persistence (Entity Beans, Hibernate, JDBC)

    Hi everybody!
    Until now, I have read a lot about persistence in the J2EE-sector, but I am still confused about which technology to used in my case.
    I hope, that maybe you can give me some hints, by telling me which technology is good or bad regarding my requirements:
    I want to build a customer- and order-management system fullfilling the following requirements:
    1. The client is a Java application, the server is a JBOSS 4.0.1
    2. The databasa scheme exists already and I'm not allowed to change it.
    Some data, that logically belongs together and which shall be presented together to the client is distributed over 2 database tables.
    3. The user cannot just create new and view data, but will also edit existing data quite often.
    4. The user can assign products to an order. Often, there will be more than 1000 products assigned to an order, which will be presented to the user as a table (e.g. JTable). The user can then edit each cell of that 1000-row table, which of course will lead to an update in the db.
    5. The user can also assign customers to a specific role in an order-process. On the other hand, each customer can make many orders.
    So, we have a n:m relation here with the db-tables Customer, Order, OrderCustomer.
    6. A complex search functionality has to be implemented, where the db-query is created dynamically at runtime.
    7. The application is a multi-user application (about 10 users). It will be very rare, that users will work on the same data at the same time, but it might happen.
    8. The database type (SAP DB) will not be changed in the near future.
    With these 8 requirements in mind, I dealed a lot with EntityBeans, Hibernate and JDBC with SesseionBeans during the last 2 weeks.
    Until now, I came to the following conclusions.
    Hibernate is too slow. That'S bad, for data is edited very often and sometimes I want to edit just a single cell in 1000-row table.
    Hibernate's biggest advantage - that it makes your application independent of the database type - is not even required (see point 8).
    JDBC with SessioBeans: Very fast (I tried a simple query and it was about 10 times faster than Hibernate).
    The disadvantage is, that I have to take care about all the transaction, concurrency control etc. things.
    If I use JDBC, I want to do it that way: A SessionFacade accesses a DAO-object which executes the DB-query and returns the result to the SessionFacade which in the last step will pass the result to the client.
    Entity Beans: I am completely confused with Entity Beans.
    I read a lot about the CompositeEntity-Pattern for BMP. But on sun's J2EE Pattern page (http://java.sun.com/blueprints/corej2eepatterns/Patterns/CompositeEntity.html)
    they said, that it's just useful when using the EJB 1.1 specification, because from EJB 2.0. the container or whatever will take care about lazy loading and store optimization.
    So, from EJB 2.0. you should prefer using CMP-Beans with Container Managed Relationships (CMR), but as I heard, the dependent objects cannot be accessed and changed by the client when using CMPBeans with CMR.
    However, a simple DB/Entity-mapping will not work in my case, because as mentioned above, there are thousands of products from the db to be managed at the same time. So here, I thought, the Composite pattern with its lazy loading strategy would be useful.
    Furthermore, I have an n:m relationship in my database scheme, which is not trivial to map to entity beans. And don't forget that some related data is spread over 2 databse tables.
    To sum it up, it would be very nice if some of you could clarify this perisistence nightmare, especially some clarification about if and how to use EntityBeans when having n:m relationships, editing data a lot, managing lots of table rows at once and having related data distributed over 2 database tables.
    So, which technology would you prefer with the 8 requirements in mind? Hibernate, Entity Beans or JDBC with SessionBeans? Or would you prefer a mixed solution?
    Thanx for every hint.
    Regards,
    egon

    Here the requested information about the test:
    Goal:
    Find all customers, who's branches have the String "Branch" in their name.
    Both times, a simple client accesses the same SessionBean in a JBOSS-Container.
    This Bean has 2 methods. One accesses the DB via Hibernate (executeCriteria), the other one via JDBC (executeCriteriaJDBC).
    The code to count the seconds of computation is as follows:
    long startTime = System.currentTimeMillis();
    List customerList = bean.executeCriteria(dc);
    System.out.println("Hibernate: "+((System.currentTimeMillis()-startTime)/1000.0f)+" sek");
    startTime = System.currentTimeMillis();
    List customerListJDBC = bean.executeCriteriaJDBC(query);
    System.out.println("JDBC: "+((System.currentTimeMillis()-startTime)/1000.0f)+" sek");
    HIBERNATE:
    CODE:
    Branch Branch = new Branch();
    Branch.setName("%Branch%");
    Example example = Example.create(Branch);     
    DetachedCriteria dc = DetachedCriteria.forClass(Customer.class)
    .createCriteria("branches").add(example.enableLike()).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    QUERY:
    select
            this_.UUID as UUID1_1_,
            this_.NAME as NAME1_1_,
            this_.CUSTOMERNO as CUSTOMERNO1_1_,
            this_.SHORTDESC as SHORTDESC1_1_,
            this_.LONGDESC as LONGDESC1_1_,
            this_.TAXNUMBER as TAXNUMBER1_1_,
            this_.SALESTAXID as SALESTAXID1_1_,
            this_.ACCOUNTHOLDER as ACCOUNTH8_1_1_,
            this_.BANKACCOUNT as BANKACCO9_1_1_,
            this_.BANKCODE as BANKCODE1_1_,
            this_.BANKNAME as BANKNAME1_1_,
            this_.AREA1TEXT as AREA12_1_1_,
            this_.AREA2TEXT as AREA13_1_1_,
            this_.AREA3TEXT as AREA14_1_1_,
            this_.AREA4TEXT as AREA15_1_1_,
            this_.AREA5TEXT as AREA16_1_1_,
            this_.CH_UUID as CH17_1_1_,
            this_.REFTEXT1 as REFTEXT18_1_1_,
            this_.REFTEXT2 as REFTEXT19_1_1_,
            this_.REFTEXT3 as REFTEXT20_1_1_,
            branch1_.UUID as UUID0_0_,
            branch1_.NAME as NAME0_0_,
            branch1_.ILN as ILN0_0_,
            branch1_.BRANCHID as BRANCHID0_0_,
            branch1_.SHORTDESC as SHORTDESC0_0_,
            branch1_.LONGDESC as LONGDESC0_0_,
            branch1_.BAGSRECEIVED as BAGSRECE7_0_0_,
            branch1_.CUSTOMER_UUID as CUSTOMER8_0_0_
        from
            CUSTOMER this_,
            BRANCH branch1_
        where
            this_.UUID=branch1_.CUSTOMER_UUID
            and (
                branch1_.NAME like ?
    RESULT:
    Customername: Customer_A
    Customername: Customer_F
    Customername: Customer_D
    Customername: Customer_R
    Customername: Customer_S
    TIME:
    Hibernate: 1.343 sek
    JDBC:
    QUERY:
    Select distinct c.* from Customer c, Branch b where b.id=b.Customer_id and b.name like '%Branch%'
    // After getting the result of the query: Create a list of Customer-objects. Set all attributes of each Customer-object.
    RESULT:
    Customername: Customer_R
    Customername: Customer_A
    Customername: Customer_S
    Customername: Customer_D
    Customername: Customer_F
    TIME:
    JDBC: 0.125 sek
    The Customer.hbm.xml (auto-generated in Eclipse with Middlegen)
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    <hibernate-mapping>
    <!--
        Created by the Middlegen Hibernate plugin 2.2
        http://boss.bekk.no/boss/middlegen/
        http://www.hibernate.org/
    -->
    <class
        name="hibernate.hibernate.Customer"
        table="CUSTOMER"
        lazy="false"
    >
        <id
            name="uuid"
            type="java.lang.String"
            column="UUID"
        >
            <generator class="assigned" />
        </id>
        <property
            name="name"
            type="java.lang.String"
            column="NAME"
            length="100"
        />
        <property
            name="customerno"
            type="java.lang.Integer"
            column="CUSTOMERNO"
            length="5"
        />
        <property
            name="shortdesc"
            type="java.lang.String"
            column="SHORTDESC"
            length="50"
        />
        <property
            name="longdesc"
            type="java.lang.String"
            column="LONGDESC"
            length="100"
        />
        <property
            name="taxnumber"
            type="java.lang.String"
            column="TAXNUMBER"
            length="50"
        />
        <property
            name="salestaxid"
            type="java.lang.String"
            column="SALESTAXID"
            length="50"
        />
        <property
            name="accountholder"
            type="java.lang.String"
            column="ACCOUNTHOLDER"
            length="50"
        />
        <property
            name="bankaccount"
            type="java.lang.String"
            column="BANKACCOUNT"
            length="50"
        />
        <property
            name="bankcode"
            type="java.lang.String"
            column="BANKCODE"
            length="50"
        />
        <property
            name="bankname"
            type="java.lang.String"
            column="BANKNAME"
            length="50"
        />
        <property
            name="area1text"
            type="java.lang.String"
            column="AREA1TEXT"
            length="50"
        />
        <property
            name="area2text"
            type="java.lang.String"
            column="AREA2TEXT"
            length="50"
        />
        <property
            name="area3text"
            type="java.lang.String"
            column="AREA3TEXT"
            length="50"
        />
        <property
            name="area4text"
            type="java.lang.String"
            column="AREA4TEXT"
            length="50"
        />
        <property
            name="area5text"
            type="java.lang.String"
            column="AREA5TEXT"
            length="50"
        />
        <property
            name="chUuid"
            type="java.lang.String"
            column="CH_UUID"
            length="50"
        />
        <property
            name="reftext1"
            type="java.lang.String"
            column="REFTEXT1"
            length="50"
        />
        <property
            name="reftext2"
            type="java.lang.String"
            column="REFTEXT2"
            length="50"
        />
        <property
            name="reftext3"
            type="java.lang.String"
            column="REFTEXT3"
            length="50"
        />
        <!-- Associations -->
        <!-- bi-directional one-to-many association to Branch -->
        <set
            name="branches"
            lazy="true"
            inverse="true"
           cascade="all"
        >
            <key>
                <column name="CUSTOMER_UUID" />
            </key>
            <one-to-many
                class="hibernate.hibernate.Branch"
            />
        </set>
    </class>
    </hibernate-mapping>So, seems to me like Hibernate is also getting the data from the Branch-Table related to each Customer. Maybe this is the reason, why Hibernate is slower.
    But as you can see in the mapping-File of the customer, I wanted Branches to be lazy loaded.
    Do you have any ideas, why Hibernate is so much slower? Any hints for optimizing that code?
    Do you have any further tricks to optimize Hibernate? Unfortunately I am not allowed to make changes at the database, so I cannot e.g. set indices for optimization.
    However, I�m a Hibernate-Newbie. In fact, I just made this test and was very disappointed about its result, so I didn�t keep on working with Hibernate.
    But maybe you can proof me, that Hibernate is a good choice. If so, do you have any good resources (links, books) that help working with Hibernate in connection with JBOSS, describe how to map n:m relationships, show how to work with large results and so forth?
    Thanx for help,
    egon

  • Strange problem with Hibernate - JDBC

    Hello, company where I work, has a customer with installed a web application that use Hibernate 3.2.6GA and "Oracle Database 10g Release 10.1.0.3.0 - Production" for persistent data.
    O.S. is RedHat Enterprise with kernel 2.6.9-5 and
    Java has version "1.6.0_01"
    Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
    Java HotSpot(TM) Server VM (build 1.6.0_01-b06, mixed mode)
    after an update of JVM with:
    Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
    Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)
    my application began a strange behaviour, when I save a double value on DB, it was rounded i.e. 1,32 became 1.40.
    I haven't updated other package.
    The application server that I use is Tomcat 6.0.14 and oracle driver is "Oracle JDBC driver, version: 10.1.0.2.0"
    When I revert configuration to return to previous JVM application restarted work correctly.
    It can come from a Jdbc bug/ compatibility problem?
    Thanks for Help.

    my application began a strange behaviour, when I save a double value on DB, it was rounded i.e. 1,32 became 1.40.That's not proper rounding by any rule I know of.
    I haven't updated other package.Your code is wrong.
    The application server that I use is Tomcat 6.0.14 and oracle driver is "Oracle JDBC driver, version: 10.1.0.2.0"
    When I revert configuration to return to previous JVM application restarted work correctly.I don't believe you. Something else is wrong. You just haven't found it.
    No insult intended, it's just more likely to be your stuff than the JDK or Oracle. They write better code than you or I do.
    It can come from a Jdbc bug/ compatibility problem? Nope, it's your code for sure.
    %

  • Unable to read one-to-many relations using Hibernate

    Hi,
    I am trying with a very simple one-to-many relationship. When I am storing the objects, there are no problems. But when I am trying to read out the collection, it says invalid descriptor index. Please help.
    Regards,
    Hibernate version:
    hibernate-3.1rc2
    Mapping documents:
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
         <class name="Parent">
              <id name="id">
                   <generator class="identity"/>
              </id>
              <set name="children">
                   <key column="parent_id"/>
                   <one-to-many class="Child"/>
              </set>
         </class>
         <class name="Child">
              <id name="id">
                   <generator class="identity"/>
              </id>
              <property name="name"/>
         </class>
    </hibernate-mapping>
    Code between sessionFactory.openSession() and session.close():
    The Parent class:
    public class Parent
         private Long id ;     
         private Set children;
         Parent(){}
         public Long getId()
              return id;
         public void setId(Long id)
              this.id=id;
         public Set getChildren()
              return children;
         public void setChildren(Set children)
              this.children=children;
    The Child class:
    public class Child
         private Long id;
         private String name;
         Child(){}
         public Long getId()
              return id;
         private void setId(Long id)
              this.id=id;
         public String getName()
              return name;
         public void setName(String name)
              this.name=name;
    The Main class:
    public class PCManager
         public static void main(String[] args)
              PCManager mgr = new PCManager();
              List lt = null;
              if (args[0].equals("store"))
                   mgr.createAndStoreParent(new HashSet(3));
              else if (args[0].equals("list"))
                   mgr.listEvents();
              HibernateUtil.getSessionFactory().close();
         private void createAndStoreParent(HashSet s)
              HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
              Parent p1 = new Parent();
              int size = 3;
              for (int i=size; i>0; i--)
                   Child c = new Child();
                   c.setName("Child"+i);
                   s.add(c);
              p1.setChildren (s);
              Iterator elems = s.iterator();
              do {     
                   Child ch = (Child) elems.next();
                   HibernateUtil.getSessionFactory().getCurrentSession().save(ch);
              }while(elems.hasNext());
              HibernateUtil.getSessionFactory().getCurrentSession().save(p1);
              HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();
         private void listEvents()
              HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();
              Parent result = (Parent) HibernateUtil.getSessionFactory().getCurrentSession().load(Parent.class, new Long(1));
              System.out.println("Id is :"+ result.getId());
              Set children = result.getChildren();
              Iterator elems = children.iterator();
              do {     
                   Child ch = (Child) elems.next();
                   System.out.println("Child Name"+ ch.getName());
              }while(elems.hasNext());
              HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();          
    Full stack trace of any exception that occurs:
    When I run with "hbm2ddl.auto" property as validate and trying to list the contents, I get the following out put.
    C:\Documents and Settings\mirza\Desktop\hibernate-3.1rc2\MyHibernate>ant run -Da
    ction=list
    Buildfile: build.xml
    clean:
    [delete] Deleting directory C:\Documents and Settings\mirza\Desktop\hibernate
    -3.1rc2\MyHibernate\bin
    [mkdir] Created dir: C:\Documents and Settings\mirza\Desktop\hibernate-3.1rc
    2\MyHibernate\bin
    copy-resources:
    [copy] Copying 4 files to C:\Documents and Settings\mirza\Desktop\hibernate
    -3.1rc2\MyHibernate\bin
    compile:
    [javac] Compiling 5 source files to C:\Documents and Settings\mirza\Desktop\
    hibernate-3.1rc2\MyHibernate\bin
    run:
    [java] 09:09:23,433 INFO Environment:474 - Hibernate 3.1 rc2
    [java] 09:09:23,449 INFO Environment:489 - loaded properties from resource
    hibernate.properties: {hibernate.cglib.use_reflection_optimizer=true, hibernate
    .cache.provider_class=org.hibernate.cache.HashtableCacheProvider, hibernate.dial
    ect=org.hibernate.dialect.SQLServerDialect, hibernate.max_fetch_depth=1, hiberna
    te.jdbc.use_streams_for_binary=true, hibernate.format_sql=true, hibernate.query.
    substitutions=yes 'Y', no 'N', hibernate.proxool.pool_alias=pool1, hibernate.cac
    he.region_prefix=hibernate.test, hibernate.jdbc.batch_versioned_data=true, hiber
    nate.connection.pool_size=1}
    [java] 09:09:23,465 INFO Environment:519 - using java.io streams to persis
    t binary types
    [java] 09:09:23,465 INFO Environment:520 - using CGLIB reflection optimize
    r
    [java] 09:09:23,481 INFO Environment:550 - using JDK 1.4 java.sql.Timestam
    p handling
    [java] 09:09:23,559 INFO Configuration:1257 - configuring from resource: /
    hibernate.cfg.xml
    [java] 09:09:23,559 INFO Configuration:1234 - Configuration resource: /hib
    ernate.cfg.xml
    [java] 09:09:23,872 INFO Configuration:460 - Reading mappings from resourc
    e: PCMapping.hbm.xml
    [java] 09:09:24,013 INFO HbmBinder:266 - Mapping class: Parent -> Parent
    [java] 09:09:24,045 INFO HbmBinder:266 - Mapping class: Child -> Child
    [java] 09:09:24,045 INFO Configuration:1368 - Configured SessionFactory: n
    ull
    [java] 09:09:24,061 INFO Configuration:1014 - processing extends queue
    [java] 09:09:24,061 INFO Configuration:1018 - processing collection mappin
    gs
    [java] 09:09:24,061 INFO HbmBinder:2233 - Mapping collection: Parent.child
    ren -> Child
    [java] 09:09:24,076 INFO Configuration:1027 - processing association prope
    rty references
    [java] 09:09:24,076 INFO Configuration:1049 - processing foreign key const
    raints
    [java] 09:09:24,155 INFO DriverManagerConnectionProvider:41 - Using Hibern
    ate built-in connection pool (not for production use!)
    [java] 09:09:24,170 INFO DriverManagerConnectionProvider:42 - Hibernate co
    nnection pool size: 1
    [java] 09:09:24,170 INFO DriverManagerConnectionProvider:45 - autocommit m
    ode: false
    [java] 09:09:24,170 INFO DriverManagerConnectionProvider:80 - using driver
    : sun.jdbc.odbc.JdbcOdbcDriver at URL: jdbc:odbc:MySQL
    [java] 09:09:24,170 INFO DriverManagerConnectionProvider:86 - connection p
    roperties: {}
    [java] 09:09:24,264 INFO SettingsFactory:77 - RDBMS: Microsoft SQL Server,
    version: 08.00.0194
    [java] 09:09:24,264 INFO SettingsFactory:78 - JDBC driver: JDBC-ODBC Bridg
    e (SQLSRV32.DLL), version: 2.0001 (03.85.1117)
    [java] 09:09:24,296 INFO Dialect:100 - Using dialect: org.hibernate.dialec
    t.SQLServerDialect
    [java] 09:09:24,311 INFO TransactionFactoryFactory:31 - Using default tran
    saction strategy (direct JDBC transactions)
    [java] 09:09:24,327 INFO TransactionManagerLookupFactory:33 - No Transacti
    onManagerLookup configured (in JTA environment, use of read-write or transaction
    al second-level cache is not recommended)
    [java] 09:09:24,327 INFO SettingsFactory:125 - Automatic flush during befo
    reCompletion(): disabled
    [java] 09:09:24,327 INFO SettingsFactory:129 - Automatic session close at
    end of transaction: disabled
    [java] 09:09:24,343 INFO SettingsFactory:144 - Scrollable result sets: ena
    bled
    [java] 09:09:24,343 INFO SettingsFactory:152 - JDBC3 getGeneratedKeys(): d
    isabled
    [java] 09:09:24,343 INFO SettingsFactory:160 - Connection release mode: au
    to
    [java] 09:09:24,358 INFO SettingsFactory:184 - Maximum outer join fetch de
    pth: 1
    [java] 09:09:24,358 INFO SettingsFactory:187 - Default batch fetch size: 1
    [java] 09:09:24,358 INFO SettingsFactory:191 - Generate SQL with comments:
    disabled
    [java] 09:09:24,358 INFO SettingsFactory:195 - Order SQL updates by primar
    y key: disabled
    [java] 09:09:24,358 INFO SettingsFactory:338 - Query translator: org.hiber
    nate.hql.ast.ASTQueryTranslatorFactory
    [java] 09:09:24,374 INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTran
    slatorFactory
    [java] 09:09:24,374 INFO SettingsFactory:203 - Query language substitution
    s: {no='N', yes='Y'}
    [java] 09:09:24,374 INFO SettingsFactory:209 - Second-level cache: enabled
    [java] 09:09:24,374 INFO SettingsFactory:213 - Query cache: disabled
    [java] 09:09:24,374 INFO SettingsFactory:325 - Cache provider: org.hiberna
    te.cache.HashtableCacheProvider
    [java] 09:09:24,374 INFO SettingsFactory:228 - Optimize cache for minimal
    puts: disabled
    [java] 09:09:24,374 INFO SettingsFactory:233 - Cache region prefix: hibern
    ate.test
    [java] 09:09:24,405 INFO SettingsFactory:237 - Structured second-level cac
    he entries: disabled
    [java] 09:09:24,437 INFO SettingsFactory:257 - Echoing all SQL to stdout
    [java] 09:09:24,452 INFO SettingsFactory:264 - Statistics: disabled
    [java] 09:09:24,452 INFO SettingsFactory:268 - Deleted entity synthetic id
    entifier rollback: disabled
    [java] 09:09:24,452 INFO SettingsFactory:283 - Default entity-mode: POJO
    [java] 09:09:24,593 INFO SessionFactoryImpl:155 - building session factory
    [java] 09:09:24,938 INFO SessionFactoryObjectFactory:82 - Not binding fact
    ory to JNDI, no JNDI name configured
    [java] 09:09:24,954 INFO SchemaValidator:99 - Running schema validator
    [java] 09:09:24,954 INFO SchemaValidator:107 - fetching database metadata
    [java] 09:09:24,954 INFO Configuration:1014 - processing extends queue
    [java] 09:09:24,954 INFO Configuration:1018 - processing collection mappin
    gs
    [java] 09:09:24,954 INFO Configuration:1027 - processing association prope
    rty references
    [java] 09:09:24,954 INFO Configuration:1049 - processing foreign key const
    raints
    [java] 09:09:24,985 WARN JDBCExceptionReporter:71 - SQL Error: 0, SQLState
    : S1002
    [java] 09:09:24,985 ERROR JDBCExceptionReporter:72 - [Microsoft][ODBC SQL S
    erver Driver]Invalid Descriptor Index
    [java] 09:09:25,001 ERROR SchemaValidator:129 - Error closing connection
    [java] java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid transaction state
    [java] Initial SessionFactory creation failed.org.hibernate.exception.Gener
    icJDBCException: could not get table metadata: Child
    [java] java.lang.ExceptionInInitializerError
    [java] at HibernateUtil.<clinit>(Unknown Source)
    [java] at PCManager.listEvents(Unknown Source)
    [java] at PCManager.main(Unknown Source)
    [java] Caused by: org.hibernate.exception.GenericJDBCException: could not g
    et table metadata: Child
    [java] at org.hibernate.exception.SQLStateConverter.handledNonSpecificE
    xception(SQLStateConverter.java:91)
    [java] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
    [java] at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
    [java] at sun.jdbc.odbc.JdbcOdbc.SQLDisconnect(JdbcOdbc.java:2988)
    [java] at sun.jdbc.odbc.JdbcOdbcDriver.disconnect(JdbcOdbcDriver.java:9
    80)
    [java] at sun.jdbc.odbc.JdbcOdbcConnection.close(JdbcOdbcConnection.jav
    a:739)
    [java] at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaVal
    idator.java:125)
    [java] at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryIm
    pl.java:299)
    [java] at org.hibernate.cfg.Configuration.buildSessionFactory(Configura
    tion.java:1145)
    [java] at HibernateUtil.<clinit>(Unknown Source)
    [java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateCon
    verter.java:79)
    [java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExcep
    tionHelper.java:43)
    [java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExcep
    tionHelper.java:29)
    [java] at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(
    DatabaseMetadata.java:100)
    [java] at org.hibernate.cfg.Configuration.validateSchema(Configuration.
    java:946)
    [java] at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaVal
    idator.java:116)
    [java] at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryIm
    pl.java:299)
    [java] at org.hibernate.cfg.Configuration.buildSessionFactory(Configura
    tion.java:1145)
    [java] ... 3 more
    [java] Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver
    ]Invalid Descriptor Index
    [java] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
    [java] at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
    [java] at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3862)
    [java] at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultS
    et.java:5561)
    [java] at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.j
    ava:338)
    [java] at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.j
    ava:395)
    [java] at PCManager.listEvents(Unknown Source)
    [java] at PCManager.main(Unknown Source)
    [java] at org.hibernate.tool.hbm2ddl.TableMetadata.<init>(TableMetadata
    .java:30)
    [java] at org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(
    DatabaseMetadata.java:85)
    [java] ... 7 more
    [java] Exception in thread "main"
    [java] Java Result: 1
    BUILD SUCCESSFUL
    Total time: 4 seconds
    Name and version of the database you are using:
    Microsoft SQLServer2000
    The generated SQL (show_sql=true):
    When the program is run with "hbm2ddl.auto" property as create, I get the following output.
    C:\Documents and Settings\mirza\Desktop\hibernate-3.1rc2\MyHibernate>ant run -Daction=store
    Buildfile: build.xml
    clean:
    [delete] Deleting directory C:\Documents and Settings\mirza\Desktop\hibernate
    -3.1rc2\MyHibernate\bin
    [mkdir] Created dir: C:\Documents and Settings\mirza\Desktop\hibernate-3.1rc
    2\MyHibernate\bin
    copy-resources:
    [copy] Copying 4 files to C:\Documents and Settings\mirza\Desktop\hibernate
    -3.1rc2\MyHibernate\bin
    compile:
    [javac] Compiling 5 source files to C:\Documents and Settings\mirza\Desktop\
    hibernate-3.1rc2\MyHibernate\bin
    run:
    [java] 09:12:54,820 INFO Environment:474 - Hibernate 3.1 rc2
    [java] 09:12:54,836 INFO Environment:489 - loaded properties from resource
    hibernate.properties: {hibernate.cglib.use_reflection_optimizer=true, hibernate
    .cache.provider_class=org.hibernate.cache.HashtableCacheProvider, hibernate.dial
    ect=org.hibernate.dialect.SQLServerDialect, hibernate.max_fetch_depth=1, hiberna
    te.jdbc.use_streams_for_binary=true, hibernate.format_sql=true, hibernate.query.
    substitutions=yes 'Y', no 'N', hibernate.proxool.pool_alias=pool1, hibernate.cac
    he.region_prefix=hibernate.test, hibernate.jdbc.batch_versioned_data=true, hiber
    nate.connection.pool_size=1}
    [java] 09:12:54,852 INFO Environment:519 - using java.io streams to persis
    t binary types
    [java] 09:12:54,852 INFO Environment:520 - using CGLIB reflection optimize
    r
    [java] 09:12:54,867 INFO Environment:550 - using JDK 1.4 java.sql.Timestam
    p handling
    [java] 09:12:54,946 INFO Configuration:1257 - configuring from resource: /
    hibernate.cfg.xml
    [java] 09:12:54,946 INFO Configuration:1234 - Configuration resource: /hib
    ernate.cfg.xml
    [java] 09:12:55,259 INFO Configuration:460 - Reading mappings from resourc
    e: PCMapping.hbm.xml
    [java] 09:12:55,400 INFO HbmBinder:266 - Mapping class: Parent -> Parent
    [java] 09:12:55,447 INFO HbmBinder:266 - Mapping class: Child -> Child
    [java] 09:12:55,447 INFO Configuration:1368 - Configured SessionFactory: n
    ull
    [java] 09:12:55,447 INFO Configuration:1014 - processing extends queue
    [java] 09:12:55,447 INFO Configuration:1018 - processing collection mappin
    gs
    [java] 09:12:55,447 INFO HbmBinder:2233 - Mapping collection: Parent.child
    ren -> Child
    [java] 09:12:55,463 INFO Configuration:1027 - processing association prope
    rty references
    [java] 09:12:55,479 INFO Configuration:1049 - processing foreign key const
    raints
    [java] 09:12:55,557 INFO DriverManagerConnectionProvider:41 - Using Hibern
    ate built-in connection pool (not for production use!)
    [java] 09:12:55,557 INFO DriverManagerConnectionProvider:42 - Hibernate co
    nnection pool size: 1
    [java] 09:12:55,557 INFO DriverManagerConnectionProvider:45 - autocommit m
    ode: false
    [java] 09:12:55,573 INFO DriverManagerConnectionProvider:80 - using driver
    : sun.jdbc.odbc.JdbcOdbcDriver at URL: jdbc:odbc:MySQL
    [java] 09:12:55,573 INFO DriverManagerConnectionProvider:86 - connection p
    roperties: {}
    [java] 09:12:55,651 INFO SettingsFactory:77 - RDBMS: Microsoft SQL Server,
    version: 08.00.0194
    [java] 09:12:55,667 INFO SettingsFactory:78 - JDBC driver: JDBC-ODBC Bridg
    e (SQLSRV32.DLL), version: 2.0001 (03.85.1117)
    [java] 09:12:55,682 INFO Dialect:100 - Using dialect: org.hibernate.dialec
    t.SQLServerDialect
    [java] 09:12:55,698 INFO TransactionFactoryFactory:31 - Using default tran
    saction strategy (direct JDBC transactions)
    [java] 09:12:55,714 INFO TransactionManagerLookupFactory:33 - No Transacti
    onManagerLookup configured (in JTA environment, use of read-write or transaction
    al second-level cache is not recommended)
    [java] 09:12:55,714 INFO SettingsFactory:125 - Automatic flush during befo
    reCompletion(): disabled
    [java] 09:12:55,714 INFO SettingsFactory:129 - Automatic session close at
    end of transaction: disabled
    [java] 09:12:55,729 INFO SettingsFactory:144 - Scrollable result sets: ena
    bled
    [java] 09:12:55,729 INFO SettingsFactory:152 - JDBC3 getGeneratedKeys(): d
    isabled
    [java] 09:12:55,745 INFO SettingsFactory:160 - Connection release mode: au
    to
    [java] 09:12:55,745 INFO SettingsFactory:184 - Maximum outer join fetch de
    pth: 1
    [java] 09:12:55,745 INFO SettingsFactory:187 - Default batch fetch size: 1
    [java] 09:12:55,745 INFO SettingsFactory:191 - Generate SQL with comments:
    disabled
    [java] 09:12:55,745 INFO SettingsFactory:195 - Order SQL updates by primar
    y key: disabled
    [java] 09:12:55,745 INFO SettingsFactory:338 - Query translator: org.hiber
    nate.hql.ast.ASTQueryTranslatorFactory
    [java] 09:12:55,777 INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTran
    slatorFactory
    [java] 09:12:55,792 INFO SettingsFactory:203 - Query language substitution
    s: {no='N', yes='Y'}
    [java] 09:12:55,792 INFO SettingsFactory:209 - Second-level cache: enabled
    [java] 09:12:55,792 INFO SettingsFactory:213 - Query cache: disabled
    [java] 09:12:55,792 INFO SettingsFactory:325 - Cache provider: org.hiberna
    te.cache.HashtableCacheProvider
    [java] 09:12:55,808 INFO SettingsFactory:228 - Optimize cache for minimal
    puts: disabled
    [java] 09:12:55,808 INFO SettingsFactory:233 - Cache region prefix: hibern
    ate.test
    [java] 09:12:55,808 INFO SettingsFactory:237 - Structured second-level cac
    he entries: disabled
    [java] 09:12:55,839 INFO SettingsFactory:257 - Echoing all SQL to stdout
    [java] 09:12:55,839 INFO SettingsFactory:264 - Statistics: disabled
    [java] 09:12:55,839 INFO SettingsFactory:268 - Deleted entity synthetic id
    entifier rollback: disabled
    [java] 09:12:55,839 INFO SettingsFactory:283 - Default entity-mode: POJO
    [java] 09:12:55,980 INFO SessionFactoryImpl:155 - building session factory
    [java] 09:12:56,325 INFO SessionFactoryObjectFactory:82 - Not binding fact
    ory to JNDI, no JNDI name configured
    [java] 09:12:56,341 INFO Configuration:1014 - processing extends queue
    [java] 09:12:56,341 INFO Configuration:1018 - processing collection mappin
    gs
    [java] 09:12:56,341 INFO Configuration:1027 - processing association prope
    rty references
    [java] 09:12:56,341 INFO Configuration:1049 - processing foreign key const
    raints
    [java] 09:12:56,356 INFO Configuration:1014 - processing extends queue
    [java] 09:12:56,356 INFO Configuration:1018 - processing collection mappin
    gs
    [java] 09:12:56,356 INFO Configuration:1027 - processing association prope
    rty references
    [java] 09:12:56,372 INFO Configuration:1049 - processing foreign key const
    raints
    [java] 09:12:56,372 INFO SchemaExport:153 - Running hbm2ddl schema export
    [java] 09:12:56,388 DEBUG SchemaExport:171 - import file not found: /import
    .sql
    [java] 09:12:56,388 INFO SchemaExport:180 - exporting generated schema to
    database
    [java] 09:12:56,403 DEBUG SchemaExport:283 -
    [java] alter table Child
    [java] drop constraint FK3E104FC976A59A
    [java] 09:12:56,466 DEBUG SchemaExport:283 -
    [java] drop table Child
    [java] 09:12:56,544 DEBUG SchemaExport:283 -
    [java] drop table Parent
    [java] 09:12:56,654 DEBUG SchemaExport:283 -
    [java] create table Child (
    [java] id numeric(19,0) identity not null,
    [java] name varchar(255) null,
    [java] parent_id numeric(19,0) null,
    [java] primary key (id)
    [java] )
    [java] 09:12:56,779 DEBUG SchemaExport:283 -
    [java] create table Parent (
    [java] id numeric(19,0) identity not null,
    [java] primary key (id)
    [java] )
    [java] 09:12:56,873 DEBUG SchemaExport:283 -
    [java] alter table Child
    [java] add constraint FK3E104FC976A59A
    [java] foreign key (parent_id)
    [java] references Parent
    [java] 09:12:56,952 INFO SchemaExport:200 - schema export complete
    [java] 09:12:56,952 WARN JDBCExceptionReporter:48 - SQL Warning: 5701, SQL
    State: 01000
    [java] 09:12:56,952 WARN JDBCExceptionReporter:49 - [Microsoft][ODBC SQL S
    erver Driver][SQL Server]Changed database context to 'master'.
    [java] 09:12:56,952 WARN JDBCExceptionReporter:48 - SQL Warning: 5703, SQL
    State: 01000
    [java] 09:12:56,952 WARN JDBCExceptionReporter:49 - [Microsoft][ODBC SQL S
    erver Driver][SQL Server]Changed language setting to us_english.
    [java] 09:12:56,983 INFO SessionFactoryImpl:432 - Checking 0 named queries
    [java] Hibernate:
    [java] insert
    [java] into
    [java] Child
    [java] (name)
    [java] values
    [java] (?) select
    [java] scope_identity()
    [java] Hibernate:
    [java] insert
    [java] into
    [java] Child
    [java] (name)
    [java] values
    [java] (?) select
    [java] scope_identity()
    [java] Hibernate:
    [java] insert
    [java] into
    [java] Child
    [java] (name)
    [java] values
    [java] (?) select
    [java] scope_identity()
    [java] Hibernate:
    [java] insert
    [java] into
    [java] Parent
    [java] default
    [java] values
    [java] select
    [java] scope_identity()
    [java] Hibernate:
    [java] update
    [java] Child
    [java] set
    [java] parent_id=?
    [java] where
    [java] id=?
    [java] Hibernate:
    [java] update
    [java] Child
    [java] set
    [java] parent_id=?
    [java] where
    [java] id=?
    [java] Hibernate:
    [java] update
    [java] Child
    [java] set
    [java] parent_id=?
    [java] where
    [java] id=?
    [java] 09:12:57,390 INFO SessionFactoryImpl:831 - closing
    [java] 09:12:57,390 INFO DriverManagerConnectionProvider:147 - cleaning up
    connection pool: jdbc:odbc:MySQL
    BUILD SUCCESSFUL
    Total time: 5 seconds
    Debug level Hibernate log excerpt:
    Included in the above description.

    That's not the right mapping for the 1:m relationship in Hibernate.
    First of all, I believe the recommendation is to have a separate .hbm.xml file for each class, so you should have one for Parent and Child.
    Second, you'll find the proper syntax for a one-to-many relationship here:
    http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html#tutorial-associations
    See if those help.
    The tutorial docs for Hibernate are quite good. I'd recommend going through them carefully.
    %

  • Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: The function START: has failed. No transaction cookie was returned

    Hello guys,
    I have been setting a production system with bitronix transaction manager, SQL server 2008, XA transactions and jetty 6. In the beginning this software was configured to run with MySQL. But one of my customer decided to move everything to MSSQL server 2008.
    In that moment I was trying to get this up and running for some weeks (The configuration was completely different) and finally I got it.
    The configuration with MSSQL server was running perfectly during 1 month but then from one day to other the error message I will show now appeared and I do not how to solve it. I almost read all the hints from google about this exception but nothing helped
    me out.
    I hope you guys can help me to find a way to solve it.
    - I tried different version of the jdbc driver 3.0 and 4.0.
    - I tried to export exactly the database to my localserver and it's running perfectly with the same configuration.
    The problem is that I cannot reproduce the error in other place that is not the customer and at the same time I have no access to their internal database server. They installed all the XA transaction stuff (dll in binn, enable XA, and grant the permissions
    for SQLXAUser), I am quite sure because it was running for one month without any problem.
    I asked to the customer if anything happenend on their server (microsoft updates, machines reboot, ...) but nothing of these happened.
    Also I tried this link out but did not help me.
    <a href="http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess">http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess</a>
    The exception is the following:
     [2014-05-15 14:06:08,842] INFO  3666[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Starting Bitronix Transaction Manager
    [2014-05-15 14:06:08,951] INFO  3775[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Extract ./webapps/myscript-fpp-wrapper-server.war to D:\Temp\Jetty_0_0_0_0_8080_myscript.fpp.wrapper.server.war__myscript.form.wrapper.server__.bnwnn7\webapp
    [2014-05-15 14:06:10,324] INFO  5148[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - NO JSP Support for /myscript-form-wrapper-server, did not find org.apache.jasper.servlet.JspServlet
    [2014-05-15 14:06:12,742] WARN  7566[main] - org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:118) - Dozer configuration file not found: dozer.properties.  Using defaults for all Dozer global properties.
    [2014-05-15 14:06:13,288] WARN  8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100) - SQL Error: 0, SQLState: null
    [2014-05-15 14:06:13,288]ERROR  8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101) - error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with
    usage count 1 wrapping SQLServerXAConnection:1 on  ProxyConnectionID:1
    [2014-05-15 14:06:13,319]ERROR  8143[main] - org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:220) - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'moduleRegistration' defined in class path resource [com/visionobjects/myscript/fpp/wrapper/module-registration.xml]: Invocation of init method failed; nested exception is
    org.hibernate.exception.GenericJDBCException: could not execute query
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
        at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
        at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
        at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.mortbay.start.Main.invokeMain(Main.java:194)
        at org.mortbay.start.Main.start(Main.java:534)
        at org.mortbay.start.Main.start(Main.java:441)
        at org.mortbay.start.Main.main(Main.java:119)
    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at org.hibernate.loader.Loader.doList(Loader.java:2235)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
        at org.hibernate.loader.Loader.list(Loader.java:2124)
        at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
        at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
        at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
        at com.visionobjects.myscript.fpp.form.dao.impl.ModuleInfoDaoImpl.getModuleInfo(ModuleInfoDaoImpl.java:57)
        at com.visionobjects.myscript.fpp.ModuleRegistration$1.doInTransactionWithoutResult(ModuleRegistration.java:73)
        at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
        at com.visionobjects.myscript.fpp.ModuleRegistration.init(ModuleRegistration.java:66)
        at com.visionobjects.myscript.fpp.ModuleRegistration.start(ModuleRegistration.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
        ... 33 more
    Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with usage count 1 wrapping SQLServerXAConnection:1 on  ProxyConnectionID:1
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:86)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:243)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:63)
        at $Proxy29.prepareStatement(Unknown Source)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
        at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
        at org.hibernate.loader.Loader.doQuery(Loader.java:696)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
        at org.hibernate.loader.Loader.doList(Loader.java:2232)
        ... 52 more
    Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=fppDataSource XAResource= XAResourceID:1 with XID a Bitronix XID [6A657474792D6670702D73657276657200000145FFC68B9B00000000 : 6A657474792D6670702D73657276657200000145FFC68BCA00000002],
    error=XAER_RMERR
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:100)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:70)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:84)
        ... 66 more
    <b>Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: The function START: has failed. No transaction cookie was returned </b>
        at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
        at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:674)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:211)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:108)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:93)
        ... 68 more
    I think the "bold" exception is the key.
    Also the configuration file of my jetty server.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
    <!-- developpment jetty configuration -->
    <!-- launch with main class : org.mortbay.start.Main app arguments:
    deploy-conf/jetty-conf/mysql/jetty-dev.xml vm arguments : -Xmx1024M -DSTOP.KEY=stop
    -DSTOP.PORT=6669 to stop : - - stop -Xmx1024M -DSTOP.KEY=stop -DSTOP.PORT=6669 -->
    <Configure id="Server" class="org.mortbay.jetty.Server">
    <Array id="plusConfig" type="java.lang.String">
    <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
    <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
    <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
    </Array>
    <Array id="serverClasses" type="java.lang.String">
    </Array>
    <Array id="systemClasses" type="java.lang.String">
    </Array>
    <!-- web apps -->
    <Set name="handler">
    <New id="handlerContext" class="org.mortbay.jetty.handler.ContextHandlerCollection">
    <Set name="handlers">
    <Array id="handlerArray" type="org.mortbay.jetty.webapp.WebAppContext">
    <!-- wrapper server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-wrapper-server.war</Arg>
    <Arg>/myscript-form-wrapper-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    <!-- form server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-form-server.war
    </Arg>
    <Arg>/myscript-form-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    <!-- hwr server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-hwr-server.war</Arg>
    <Arg>/myscript-form-hwr-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    </Array>
    </Set>
    </New>
    </Set>
    <Call name="addConnector">
    <Arg>
    <New class="org.mortbay.jetty.nio.SelectChannelConnector">
    <Set name="port">8080</Set>
    </New>
    </Arg>
    </Call>
    <!-- Use the jdk 1.5 platformMBeanServer -->
    <Call id="MBeanServer" class="java.lang.management.ManagementFactory"
    name="getPlatformMBeanServer" />
    <Get id="Container" name="container">
    <Call name="addEventListener">
    <Arg>
    <New class="org.mortbay.management.MBeanContainer">
    <Arg>
    <Ref id="MBeanServer" />
    </Arg>
    <Call name="start" />
    </New>
    </Arg>
    </Call>
    </Get>
    <!-- Setup the RMIRegistry on a specific port -->
    <Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry"
    name="createRegistry">
    <Arg type="int">2099</Arg>
    </Call>
    <!-- Setup the JMXConnectorServer on a specific rmi server port -->
    <Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory"
    name="newJMXConnectorServer">
    <Arg>
    <New class="javax.management.remote.JMXServiceURL">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    </Arg>
    <Arg />
    <Arg>
    <Ref id="MBeanServer" />
    </Arg>
    <Call name="start" />
    </Call>
    <!--************************* -->
    <!-- embbeded ActiveMQ Broker -->
    <!--************************* -->
    <New id="brokerService" class="org.apache.activemq.broker.BrokerService">
    <Set name="brokerName">fppBrokerActiveMQ</Set>
    <Set name="dataDirectoryFile"></Set>
    <Call name="getSystemUsage">
    <Call name="getMemoryUsage">
    <Set name="limit">26428800</Set>
    </Call>
    <Call name="getStoreUsage">
    <Set name="limit">204857600</Set>
    </Call>
    </Call>
    <Call name="addConnector">
    <Arg>nio://localhost:61615</Arg>
    </Call>
    <Call name="start"></Call>
    </New>
    <!-- ************************** -->
    <!-- common fpp jndi resources -->
    <!-- ************************** -->
    <!-- ui debug properties -->
    <New id="fpp.common-ui.velocityProperties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.common-ui.velocityProperties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="spring.resource.loader.class">org.springframework.ui.velocity.SpringResourceLoader
    </Put>
    <Put name="spring.resource.loader.cache">false</Put>
    <Put name="velocimacro.library.autoreload">true</Put>
    </New>
    </Arg>
    </New>
    <New id="fpp.wrapper-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.wrapper-server.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.wrapper-server.instanceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/instance?wsdl
    </Put>
    <Put name="fpp.wrapper-server.formServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/form?wsdl
    </Put>
    <Put name="fpp.wrapper-server.formDeprecatedServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/formDeprecated?wsdl
    </Put>
    <Put name="fpp.wrapper-server.hwrResourceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/hwrResource?wsdl
    </Put>
    <Put name="fpp.wrapper-server.defaultEnvironmentName">default</Put>
    <Put name="fpp.wrapper-server.defaultEnvironmentType">STANDARD</Put>
    <Put name="fpp.wrapper-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    </New>
    </Arg>
    </New>
    <!-- transaction manager - bitronix -->
    <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
    <Set name="serverId">jetty-fpp-server</Set>
    <Set name="gracefulShutdownInterval">45</Set>
    <Set name="logPart1Filename">btm/btm1.tlog</Set>
    <Set name="logPart2Filename">btm/btm2.tlog</Set>
    </Call>
    <Set name="gracefulShutdown">60000</Set>
    <Call name="addLifeCycle">
    <Arg>
    <New class="bitronix.tm.integration.jetty6.BTMLifeCycle" />
    </Arg>
    </Call>
    <New class="org.mortbay.jetty.plus.naming.Transaction">
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:/TransactionManager</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:comp/TransactionManager</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:comp/UserTransaction</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <!-- database data source -->
    <New id="fppDataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource">
    <Set name="uniqueName">fppDataSource</Set>
    <Set name="className">com.microsoft.sqlserver.jdbc.SQLServerXADataSource</Set>
    <Set name="minPoolSize">0</Set>
    <Set name="maxPoolSize">50</Set>
    <Get name="driverProperties">
    <Put name="serverName">DYHVDB01</Put>
    <Put name="instanceName">ALPHA</Put>
    <Put name="integratedSecurity">false</Put>
    <Put name="databaseName">tdb_digipen_fpp</Put>
    <Put name="user">manage_digipen</Put>
    <Put name="password">5T1fte?</Put>
    <!--Needed to test??<Put name="pinGlobalTxToPhysicalConnection">true</Put>-->
    </Get>
    <Call name="init" />
    </New>
    <!-- Jms connection factories -->
    <New id="fppServerConnectionFactory" class="bitronix.tm.resource.jms.PoolingConnectionFactory">
    <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
    <Set name="uniqueName">fppServerConnectionFactory</Set>
    <Set name="minPoolSize">4</Set>
    <Set name="maxPoolSize">40</Set>
    <Set name="allowLocalTransactions">true</Set>
    <Get name="driverProperties">
    <Put name="brokerURL">nio://localhost:61615?jms.prefetchPolicy.all=50</Put>
    <New class="org.apache.activemq.RedeliveryPolicy">
    <Set name="maximumRedeliveries">-1</Set>
    <Set name="backOffMultiplier">2</Set>
    </New>
    </Get>
    <Call name="init" />
    </New>
    <!-- JMS Queues & topics -->
    <New id="formNotifiationTopic" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/formNotifiationTopic</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQTopic">
    <Arg>formNotifiationTopic</Arg>
    </New>
    </Arg>
    </New>
    <New id="fieldJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/fieldJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>fieldJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <New id="fieldNotifJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/fieldNotifJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>fieldNotifJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <New id="inkJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/inkJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>inkJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <!-- native library services -->
    <New id="myscriptLicenseService" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/myscriptLicenseService</Arg>
    <Arg>
    <New
    class="com.visionobjects.licensemanager.impl.MyscriptLicenseServiceImpl">
    <Arg>localhost</Arg>
    </New>
    </Arg>
    </New>
    <!-- *********************** -->
    <!-- form server properties -->
    <!-- *********************** -->
    <New id="fpp.form.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.form.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.form.defaultEnvironmentName">default</Put>
    <Put name="fpp.form.defaultEnvironmentType">STANDARD</Put>
    <Put name="fpp.form.jbpm.job.nbexecutor">4</Put>
    <Put name="fpp.form.jbpm.job.idleinterval">1000</Put>
    <Put name="fpp.form.field.notif.nbconsumers">2</Put>
    <Put name="fpp.form.ink.nbconsumers">2</Put>
    <Put name="fpp.form.instance.instanceValidationMode">STANDARD</Put>
    <Put name="fpp.form.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <!--<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>-->
    <Put name="fpp.form.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.form.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.form.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
    </Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    <Put name="fpp.form.jbpmdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.form.jbpmdb.hibernate.show_sql">true</Put>
    <Put name="fpp.form.jbpmdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.form.jbpmdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
    </Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    <Put name="fpp.form.scheduler.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</Put>
    <Put name="fpp.form.scheduler.dataSource.driver">com.microsoft.sqlserver.jdbc.SQLServerDriver</Put>
    <Put name="fpp.form.scheduler.dataSource.URL">jdbc:sqlserver://DYHVDB01\ALPHA;DatabaseName=tdb_digipen_fpp;integratedSecurity=false
    </Put>
    <Put name="fpp.form.scheduler.dataSource.user">manage_digipen</Put>
    <Put name="fpp.form.scheduler.dataSource.password">5T1fte?</Put>
    <!-- Cron Format A cron expression is a string comprised of 6 or 7 fields
    separated by white space. Fields can contain any of the allowed values, along
    with various combinations of the allowed special characters for that field.
    The fields are as follows: Field Name Mandatory Allowed Values Allowed Special
    Characters Seconds YES 0-59 , - * / Minutes YES 0-59 , - * / Hours YES 0-23
    , - * / Day of month YES 1-31 , - * ? / L W Month YES 1-12 or JAN-DEC , -
    * / Day of week YES 1-7 or SUN-SAT , - * ? / L # Year NO empty, 1970-2099
    , - * / -->
    <Put name="fpp.form.purge.moduleinfo.cron">0 0/1 * * * ?</Put>
    <Put name="fpp.form.purge.instances.cron">0 0 * * * ?</Put>
    <Put name="fpp.form.purge.instances.defaultcase">365</Put>
    <Put name="fpp.form.purge.instances.case1">10</Put>
    <Put name="fpp.form.purge.instances.case2">60</Put>
    <Put name="fpp.form.purge.instances.case3">100</Put>
    <Put name="fpp.form.purge.instances.case4">30</Put>
    <Put name="fpp.form.purge.instances.case5">60</Put>
    <Put name="fpp.form.export.cron">0 0 * * * ?</Put>
    <Put name="fpp.form.export.exportpath">C:\FPP</Put>
    <Put name="fpp.form.export.exportMode">REGULAR</Put>
    <Put name="fpp.form.export.buildingType">INCREMENTAL</Put>
    <Put name="fpp.form.export.addInformations">true</Put>
    </New>
    </Arg>
    </New>
    <New id="fppFormDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>jdbc/fppFormDbDataSource</Arg>
    <Arg>
    <Ref id="fppDataSource"></Ref>
    </Arg>
    </New>
    <New id="fppJbpmDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>jdbc/fppJbpmDbDataSource</Arg>
    <Arg>
    <Ref id="fppDataSource" />
    </Arg>
    </New>
    <New id="formJmsTopicConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/formJmsTopicConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldNotifConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldNotifConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="inkConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/inkConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <!-- HWR SERVER -->
    <New id="fpp.hwr-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.hwr-server.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.hwr-server.formbroker.uri">failover:nio://localhost:61615</Put>
    <Put name="fpp.hwr-server.fieldConsumers">4</Put>
    <Put name="fpp.hwr-server.resourceManager.memoryUsageThreshold">262144000</Put>
    <Put name="fpp.hwr-server.resourceManager.resourceCountThreshold">150</Put>
    <Put name="fpp.hwr-server.resourceManager.idleTimeLimit">1800000</Put>
    <Put name="fpp.hwr-server.resourceManager.timeToLive">3600000</Put>
    <Put name="fpp.hwr-server.resourceManager.wakeUpInterval">100000</Put>
    <Put name="fpp.hwr-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.hwr-server.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.hwr-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put
    name="fpp.hwr-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
    <Put name="fpp.hwr-server.internal.dumpRecognition">false</Put>
    </New>
    </Arg>
    </New>
    <New id="myscriptHwrService" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/myscriptHwrService</Arg>
    <Arg>
    <New class="com.visionobjects.myscript.commons.hwr.engine.HwrEngineService">
    <Set name="handwritingContextUserLimit">50</Set>
    <Set name="resourceUserLimit">0</Set>
    <Set name="otherObjectUserLimit">500</Set>
    <Call name="doStart" />
    </New>
    </Arg>
    </New>
    <New id="fieldNotificationProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldNotificationProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <!-- wrapper -->
    <New id="fppWrapperServerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <Set name="brokerURL">nio://localhost:61615</Set>
    <Set name="redeliveryPolicy">
    <New class="org.apache.activemq.RedeliveryPolicy">
    <Set name="maximumRedeliveries">-1</Set>
    <Set name="backOffMultiplier">2</Set>
    </New>
    </Set>
    </New>
    <New id="formNotificationConsumerFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/formNotificationConsumerFactory</Arg>
    <Arg>
    <Ref id="fppWrapperServerConnectionFactory" />
    </Arg>
    </New>
    <New id="inkProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/inkProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppWrapperServerConnectionFactory" />
    </Arg>
    </New>
    <!-- JMX/SENSORS -->
    <New id="inkJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="inkJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=inkJmsQueue
    </Arg>
    </New>
    <New id="fieldNotifJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="fieldNotifJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldNotifJmsQueue
    </Arg>
    </New>
    <New id="fieldJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="fieldJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldJmsQueue
    </Arg>
    </New>
    <New id="formNotifiationTopicUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="formNotifiationTopicObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=formNotifiationTopic
    </Arg>
    </New>
    <New id="server.list" class="java.util.HashMap">
    <!-- InkJmsQueue -->
    <Put name="WRP">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8081</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    <Put name="FORM">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8080</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    <Put name="HWR">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8083</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    </New>
    <New id="fpp.form.jmx.properties" class="java.util.HashMap">
    <!-- InkJmsQueue -->
    <Put name="inkJmsQueueSize">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">QueueSize</Put>
    </New>
    </Put>
    <Put name="inkJmsConsumerCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">ConsumerCount</Put>
    </New>
    </Put>
    <Put name="inkJmsDequeueCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">DequeueCount</Put>
    </New>
    </Put>
    <Put name="inkJmsAverageEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">AverageEnqueueTime</Put>
    </New>
    </Put>
    <Put name="inkJmsMaxEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">MaxEnqueueTime</Put>
    </New>
    </Put>
    <!--FieldNotifJmsQueue -->
    <Put name="fieldNotifJmsQueueSize">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">QueueSize</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsConsumerCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">ConsumerCount</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsDequeueCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">DequeueCount</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsAverageEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">AverageEnqueueTime</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsMaxEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">MaxEnqueueTime</Put>
    </New>
    </Put>
    </New>
    <New id="fpp.form.ui.parameters" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.form.ui.parameters</Arg>
    <Arg>
    <New
    class="com.visionobjects.myscript.fpp.ui.parameters.impl.UIParametersServiceImpl">
    <Set name="jmxProperties">
    <Ref id="fpp.form.jmx.properties"></Ref>
    </Set>
    <Set name="serverList">
    <Ref id="server.list"></Ref>
    </Set>
    </New>
    </Arg>
    </New>
    </Configure>
    Thanks so much in advance.
     

    Hello guys,
    I have been setting a production system with bitronix transaction manager, SQL server 2008, XA transactions and jetty 6. In the beginning this software was configured to run with MySQL. But one of my customer decided to move everything to MSSQL server 2008.
    In that moment I was trying to get this up and running for some weeks (The configuration was completely different) and finally I got it.
    The configuration with MSSQL server was running perfectly during 1 month but then from one day to other the error message I will show now appeared and I do not how to solve it. I almost read all the hints from google about this exception but nothing helped
    me out.
    I hope you guys can help me to find a way to solve it.
    - I tried different version of the jdbc driver 3.0 and 4.0.
    - I tried to export exactly the database to my localserver and it's running perfectly with the same configuration.
    The problem is that I cannot reproduce the error in other place that is not the customer and at the same time I have no access to their internal database server. They installed all the XA transaction stuff (dll in binn, enable XA, and grant the permissions
    for SQLXAUser), I am quite sure because it was running for one month without any problem.
    I asked to the customer if anything happenend on their server (microsoft updates, machines reboot, ...) but nothing of these happened.
    Also I tried this link out but did not help me.
    <a href="http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess">http://social.msdn.microsoft.com/Forums/sqlserver/en-US/15c1e6f5-ec1e-4376-8f45-25e61ffc1306/the-function-start-has-failed-no-transaction-cookie-was-returned?forum=sqldataaccess</a>
    The exception is the following:
     [2014-05-15 14:06:08,842] INFO  3666[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Starting Bitronix Transaction Manager
    [2014-05-15 14:06:08,951] INFO  3775[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - Extract ./webapps/myscript-fpp-wrapper-server.war to D:\Temp\Jetty_0_0_0_0_8080_myscript.fpp.wrapper.server.war__myscript.form.wrapper.server__.bnwnn7\webapp
    [2014-05-15 14:06:10,324] INFO  5148[main] - org.mortbay.log.Slf4jLog.info(Slf4jLog.java:67) - NO JSP Support for /myscript-form-wrapper-server, did not find org.apache.jasper.servlet.JspServlet
    [2014-05-15 14:06:12,742] WARN  7566[main] - org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:118) - Dozer configuration file not found: dozer.properties.  Using defaults for all Dozer global properties.
    [2014-05-15 14:06:13,288] WARN  8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:100) - SQL Error: 0, SQLState: null
    [2014-05-15 14:06:13,288]ERROR  8112[main] - org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:101) - error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with
    usage count 1 wrapping SQLServerXAConnection:1 on  ProxyConnectionID:1
    [2014-05-15 14:06:13,319]ERROR  8143[main] - org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:220) - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'moduleRegistration' defined in class path resource [com/visionobjects/myscript/fpp/wrapper/module-registration.xml]: Invocation of init method failed; nested exception is
    org.hibernate.exception.GenericJDBCException: could not execute query
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
        at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
        at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
        at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.mortbay.start.Main.invokeMain(Main.java:194)
        at org.mortbay.start.Main.start(Main.java:534)
        at org.mortbay.start.Main.start(Main.java:441)
        at org.mortbay.start.Main.main(Main.java:119)
    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at org.hibernate.loader.Loader.doList(Loader.java:2235)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
        at org.hibernate.loader.Loader.list(Loader.java:2124)
        at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
        at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
        at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
        at com.visionobjects.myscript.fpp.form.dao.impl.ModuleInfoDaoImpl.getModuleInfo(ModuleInfoDaoImpl.java:57)
        at com.visionobjects.myscript.fpp.ModuleRegistration$1.doInTransactionWithoutResult(ModuleRegistration.java:73)
        at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
        at com.visionobjects.myscript.fpp.ModuleRegistration.init(ModuleRegistration.java:66)
        at com.visionobjects.myscript.fpp.ModuleRegistration.start(ModuleRegistration.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
        ... 33 more
    Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource fppDataSource in state ACCESSIBLE with usage count 1 wrapping SQLServerXAConnection:1 on  ProxyConnectionID:1
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:86)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:243)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at bitronix.tm.resource.jdbc.BaseProxyHandlerClass.invoke(BaseProxyHandlerClass.java:63)
        at $Proxy29.prepareStatement(Unknown Source)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
        at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
        at org.hibernate.loader.Loader.doQuery(Loader.java:696)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
        at org.hibernate.loader.Loader.doList(Loader.java:2232)
        ... 52 more
    Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=fppDataSource XAResource= XAResourceID:1 with XID a Bitronix XID [6A657474792D6670702D73657276657200000145FFC68B9B00000000 : 6A657474792D6670702D73657276657200000145FFC68BCA00000002],
    error=XAER_RMERR
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:100)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:70)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:84)
        ... 66 more
    <b>Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: The function START: has failed. No transaction cookie was returned </b>
        at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
        at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:674)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:211)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:108)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:93)
        ... 68 more
    I think the "bold" exception is the key.
    Also the configuration file of my jetty server.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
    <!-- developpment jetty configuration -->
    <!-- launch with main class : org.mortbay.start.Main app arguments:
    deploy-conf/jetty-conf/mysql/jetty-dev.xml vm arguments : -Xmx1024M -DSTOP.KEY=stop
    -DSTOP.PORT=6669 to stop : - - stop -Xmx1024M -DSTOP.KEY=stop -DSTOP.PORT=6669 -->
    <Configure id="Server" class="org.mortbay.jetty.Server">
    <Array id="plusConfig" type="java.lang.String">
    <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
    <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
    <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
    </Array>
    <Array id="serverClasses" type="java.lang.String">
    </Array>
    <Array id="systemClasses" type="java.lang.String">
    </Array>
    <!-- web apps -->
    <Set name="handler">
    <New id="handlerContext" class="org.mortbay.jetty.handler.ContextHandlerCollection">
    <Set name="handlers">
    <Array id="handlerArray" type="org.mortbay.jetty.webapp.WebAppContext">
    <!-- wrapper server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-wrapper-server.war</Arg>
    <Arg>/myscript-form-wrapper-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    <!-- form server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-form-server.war
    </Arg>
    <Arg>/myscript-form-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    <!-- hwr server -->
    <Item>
    <New class="org.mortbay.jetty.webapp.WebAppContext">
    <Arg>./webapps/myscript-fpp-hwr-server.war</Arg>
    <Arg>/myscript-form-hwr-server</Arg>
    <Set name="serverClasses">
    <Ref id="serverClasses" />
    </Set>
    <Set name="ConfigurationClasses">
    <Ref id="plusConfig" />
    </Set>
    </New>
    </Item>
    </Array>
    </Set>
    </New>
    </Set>
    <Call name="addConnector">
    <Arg>
    <New class="org.mortbay.jetty.nio.SelectChannelConnector">
    <Set name="port">8080</Set>
    </New>
    </Arg>
    </Call>
    <!-- Use the jdk 1.5 platformMBeanServer -->
    <Call id="MBeanServer" class="java.lang.management.ManagementFactory"
    name="getPlatformMBeanServer" />
    <Get id="Container" name="container">
    <Call name="addEventListener">
    <Arg>
    <New class="org.mortbay.management.MBeanContainer">
    <Arg>
    <Ref id="MBeanServer" />
    </Arg>
    <Call name="start" />
    </New>
    </Arg>
    </Call>
    </Get>
    <!-- Setup the RMIRegistry on a specific port -->
    <Call id="rmiRegistry" class="java.rmi.registry.LocateRegistry"
    name="createRegistry">
    <Arg type="int">2099</Arg>
    </Call>
    <!-- Setup the JMXConnectorServer on a specific rmi server port -->
    <Call id="jmxConnectorServer" class="javax.management.remote.JMXConnectorServerFactory"
    name="newJMXConnectorServer">
    <Arg>
    <New class="javax.management.remote.JMXServiceURL">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    </Arg>
    <Arg />
    <Arg>
    <Ref id="MBeanServer" />
    </Arg>
    <Call name="start" />
    </Call>
    <!--************************* -->
    <!-- embbeded ActiveMQ Broker -->
    <!--************************* -->
    <New id="brokerService" class="org.apache.activemq.broker.BrokerService">
    <Set name="brokerName">fppBrokerActiveMQ</Set>
    <Set name="dataDirectoryFile"></Set>
    <Call name="getSystemUsage">
    <Call name="getMemoryUsage">
    <Set name="limit">26428800</Set>
    </Call>
    <Call name="getStoreUsage">
    <Set name="limit">204857600</Set>
    </Call>
    </Call>
    <Call name="addConnector">
    <Arg>nio://localhost:61615</Arg>
    </Call>
    <Call name="start"></Call>
    </New>
    <!-- ************************** -->
    <!-- common fpp jndi resources -->
    <!-- ************************** -->
    <!-- ui debug properties -->
    <New id="fpp.common-ui.velocityProperties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.common-ui.velocityProperties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="spring.resource.loader.class">org.springframework.ui.velocity.SpringResourceLoader
    </Put>
    <Put name="spring.resource.loader.cache">false</Put>
    <Put name="velocimacro.library.autoreload">true</Put>
    </New>
    </Arg>
    </New>
    <New id="fpp.wrapper-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.wrapper-server.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.wrapper-server.instanceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/instance?wsdl
    </Put>
    <Put name="fpp.wrapper-server.formServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/form?wsdl
    </Put>
    <Put name="fpp.wrapper-server.formDeprecatedServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/formDeprecated?wsdl
    </Put>
    <Put name="fpp.wrapper-server.hwrResourceServiceWsdlLocation">http://localhost:8080/myscript-form-server/cxf/hwrResource?wsdl
    </Put>
    <Put name="fpp.wrapper-server.defaultEnvironmentName">default</Put>
    <Put name="fpp.wrapper-server.defaultEnvironmentType">STANDARD</Put>
    <Put name="fpp.wrapper-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.wrapper-server.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    </New>
    </Arg>
    </New>
    <!-- transaction manager - bitronix -->
    <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
    <Set name="serverId">jetty-fpp-server</Set>
    <Set name="gracefulShutdownInterval">45</Set>
    <Set name="logPart1Filename">btm/btm1.tlog</Set>
    <Set name="logPart2Filename">btm/btm2.tlog</Set>
    </Call>
    <Set name="gracefulShutdown">60000</Set>
    <Call name="addLifeCycle">
    <Arg>
    <New class="bitronix.tm.integration.jetty6.BTMLifeCycle" />
    </Arg>
    </Call>
    <New class="org.mortbay.jetty.plus.naming.Transaction">
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:/TransactionManager</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:comp/TransactionManager</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <New id="userTransactionManager" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>java:comp/UserTransaction</Arg>
    <Arg>
    <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
    </Arg>
    </New>
    <!-- database data source -->
    <New id="fppDataSource" class="bitronix.tm.resource.jdbc.PoolingDataSource">
    <Set name="uniqueName">fppDataSource</Set>
    <Set name="className">com.microsoft.sqlserver.jdbc.SQLServerXADataSource</Set>
    <Set name="minPoolSize">0</Set>
    <Set name="maxPoolSize">50</Set>
    <Get name="driverProperties">
    <Put name="serverName">DYHVDB01</Put>
    <Put name="instanceName">ALPHA</Put>
    <Put name="integratedSecurity">false</Put>
    <Put name="databaseName">tdb_digipen_fpp</Put>
    <Put name="user">manage_digipen</Put>
    <Put name="password">5T1fte?</Put>
    <!--Needed to test??<Put name="pinGlobalTxToPhysicalConnection">true</Put>-->
    </Get>
    <Call name="init" />
    </New>
    <!-- Jms connection factories -->
    <New id="fppServerConnectionFactory" class="bitronix.tm.resource.jms.PoolingConnectionFactory">
    <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
    <Set name="uniqueName">fppServerConnectionFactory</Set>
    <Set name="minPoolSize">4</Set>
    <Set name="maxPoolSize">40</Set>
    <Set name="allowLocalTransactions">true</Set>
    <Get name="driverProperties">
    <Put name="brokerURL">nio://localhost:61615?jms.prefetchPolicy.all=50</Put>
    <New class="org.apache.activemq.RedeliveryPolicy">
    <Set name="maximumRedeliveries">-1</Set>
    <Set name="backOffMultiplier">2</Set>
    </New>
    </Get>
    <Call name="init" />
    </New>
    <!-- JMS Queues & topics -->
    <New id="formNotifiationTopic" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/formNotifiationTopic</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQTopic">
    <Arg>formNotifiationTopic</Arg>
    </New>
    </Arg>
    </New>
    <New id="fieldJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/fieldJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>fieldJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <New id="fieldNotifJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/fieldNotifJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>fieldNotifJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <New id="inkJmsQueue" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>fpp/inkJmsQueue</Arg>
    <Arg>
    <New class="org.apache.activemq.command.ActiveMQQueue">
    <Arg>inkJmsQueue</Arg>
    </New>
    </Arg>
    </New>
    <!-- native library services -->
    <New id="myscriptLicenseService" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/myscriptLicenseService</Arg>
    <Arg>
    <New
    class="com.visionobjects.licensemanager.impl.MyscriptLicenseServiceImpl">
    <Arg>localhost</Arg>
    </New>
    </Arg>
    </New>
    <!-- *********************** -->
    <!-- form server properties -->
    <!-- *********************** -->
    <New id="fpp.form.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.form.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.form.defaultEnvironmentName">default</Put>
    <Put name="fpp.form.defaultEnvironmentType">STANDARD</Put>
    <Put name="fpp.form.jbpm.job.nbexecutor">4</Put>
    <Put name="fpp.form.jbpm.job.idleinterval">1000</Put>
    <Put name="fpp.form.field.notif.nbconsumers">2</Put>
    <Put name="fpp.form.ink.nbconsumers">2</Put>
    <Put name="fpp.form.instance.instanceValidationMode">STANDARD</Put>
    <Put name="fpp.form.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <!--<Put name="fpp.form.formdb.hibernate.show_sql">true</Put>-->
    <Put name="fpp.form.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.form.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.form.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
    </Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.form.formdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    <Put name="fpp.form.jbpmdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.form.jbpmdb.hibernate.show_sql">true</Put>
    <Put name="fpp.form.jbpmdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put name="fpp.form.jbpmdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup
    </Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_query_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_second_level_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.use_structured_cache">false</Put>
    <Put name="fpp.form.jbpmdb.hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</Put>
    <Put name="fpp.form.scheduler.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</Put>
    <Put name="fpp.form.scheduler.dataSource.driver">com.microsoft.sqlserver.jdbc.SQLServerDriver</Put>
    <Put name="fpp.form.scheduler.dataSource.URL">jdbc:sqlserver://DYHVDB01\ALPHA;DatabaseName=tdb_digipen_fpp;integratedSecurity=false
    </Put>
    <Put name="fpp.form.scheduler.dataSource.user">manage_digipen</Put>
    <Put name="fpp.form.scheduler.dataSource.password">5T1fte?</Put>
    <!-- Cron Format A cron expression is a string comprised of 6 or 7 fields
    separated by white space. Fields can contain any of the allowed values, along
    with various combinations of the allowed special characters for that field.
    The fields are as follows: Field Name Mandatory Allowed Values Allowed Special
    Characters Seconds YES 0-59 , - * / Minutes YES 0-59 , - * / Hours YES 0-23
    , - * / Day of month YES 1-31 , - * ? / L W Month YES 1-12 or JAN-DEC , -
    * / Day of week YES 1-7 or SUN-SAT , - * ? / L # Year NO empty, 1970-2099
    , - * / -->
    <Put name="fpp.form.purge.moduleinfo.cron">0 0/1 * * * ?</Put>
    <Put name="fpp.form.purge.instances.cron">0 0 * * * ?</Put>
    <Put name="fpp.form.purge.instances.defaultcase">365</Put>
    <Put name="fpp.form.purge.instances.case1">10</Put>
    <Put name="fpp.form.purge.instances.case2">60</Put>
    <Put name="fpp.form.purge.instances.case3">100</Put>
    <Put name="fpp.form.purge.instances.case4">30</Put>
    <Put name="fpp.form.purge.instances.case5">60</Put>
    <Put name="fpp.form.export.cron">0 0 * * * ?</Put>
    <Put name="fpp.form.export.exportpath">C:\FPP</Put>
    <Put name="fpp.form.export.exportMode">REGULAR</Put>
    <Put name="fpp.form.export.buildingType">INCREMENTAL</Put>
    <Put name="fpp.form.export.addInformations">true</Put>
    </New>
    </Arg>
    </New>
    <New id="fppFormDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>jdbc/fppFormDbDataSource</Arg>
    <Arg>
    <Ref id="fppDataSource"></Ref>
    </Arg>
    </New>
    <New id="fppJbpmDbDataSource" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>jdbc/fppJbpmDbDataSource</Arg>
    <Arg>
    <Ref id="fppDataSource" />
    </Arg>
    </New>
    <New id="formJmsTopicConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/formJmsTopicConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldNotifConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldNotifConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="inkConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/inkConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <!-- HWR SERVER -->
    <New id="fpp.hwr-server.properties" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.hwr-server.properties</Arg>
    <Arg>
    <New class="java.util.Properties">
    <Put name="fpp.hwr-server.formbroker.uri">failover:nio://localhost:61615</Put>
    <Put name="fpp.hwr-server.fieldConsumers">4</Put>
    <Put name="fpp.hwr-server.resourceManager.memoryUsageThreshold">262144000</Put>
    <Put name="fpp.hwr-server.resourceManager.resourceCountThreshold">150</Put>
    <Put name="fpp.hwr-server.resourceManager.idleTimeLimit">1800000</Put>
    <Put name="fpp.hwr-server.resourceManager.timeToLive">3600000</Put>
    <Put name="fpp.hwr-server.resourceManager.wakeUpInterval">100000</Put>
    <Put name="fpp.hwr-server.formdb.dialect">org.hibernate.dialect.SQLServerDialect</Put>
    <Put name="fpp.hwr-server.formdb.hibernate.show_sql">true</Put>
    <Put name="fpp.hwr-server.formdb.hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</Put>
    <Put
    name="fpp.hwr-server.formdb.hibernate.transaction.manager_lookup_class">org.hibernate.transaction.BTMTransactionManagerLookup</Put>
    <Put name="fpp.hwr-server.internal.dumpRecognition">false</Put>
    </New>
    </Arg>
    </New>
    <New id="myscriptHwrService" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/myscriptHwrService</Arg>
    <Arg>
    <New class="com.visionobjects.myscript.commons.hwr.engine.HwrEngineService">
    <Set name="handwritingContextUserLimit">50</Set>
    <Set name="resourceUserLimit">0</Set>
    <Set name="otherObjectUserLimit">500</Set>
    <Call name="doStart" />
    </New>
    </Arg>
    </New>
    <New id="fieldNotificationProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldNotificationProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <New id="fieldConsumerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fieldConsumerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppServerConnectionFactory" />
    </Arg>
    </New>
    <!-- wrapper -->
    <New id="fppWrapperServerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <Set name="brokerURL">nio://localhost:61615</Set>
    <Set name="redeliveryPolicy">
    <New class="org.apache.activemq.RedeliveryPolicy">
    <Set name="maximumRedeliveries">-1</Set>
    <Set name="backOffMultiplier">2</Set>
    </New>
    </Set>
    </New>
    <New id="formNotificationConsumerFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/formNotificationConsumerFactory</Arg>
    <Arg>
    <Ref id="fppWrapperServerConnectionFactory" />
    </Arg>
    </New>
    <New id="inkProducerJmsConnectionFactory" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/inkProducerJmsConnectionFactory</Arg>
    <Arg>
    <Ref id="fppWrapperServerConnectionFactory" />
    </Arg>
    </New>
    <!-- JMX/SENSORS -->
    <New id="inkJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="inkJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=inkJmsQueue
    </Arg>
    </New>
    <New id="fieldNotifJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="fieldNotifJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldNotifJmsQueue
    </Arg>
    </New>
    <New id="fieldJmsQueueUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="fieldJmsQueueObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=fieldJmsQueue
    </Arg>
    </New>
    <New id="formNotifiationTopicUrl" class="java.lang.String">
    <Arg>service:jmx:rmi://localhost:2100/jndi/rmi://localhost:2099/jmxrmi
    </Arg>
    </New>
    <New id="formNotifiationTopicObjectName" class="java.lang.String">
    <Arg>org.apache.activemq:BrokerName=formserver.broker,Type=Queue,Destination=formNotifiationTopic
    </Arg>
    </New>
    <New id="server.list" class="java.util.HashMap">
    <!-- InkJmsQueue -->
    <Put name="WRP">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8081</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    <Put name="FORM">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8080</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    <Put name="HWR">
    <New class="java.util.ArrayList">
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8083</Arg>
    </New>
    </Arg>
    </Call>
    <Call name="add">
    <Arg>
    <New class="java.lang.String">
    <Arg>http://localhost:8084</Arg>
    </New>
    </Arg>
    </Call>
    </New>
    </Put>
    </New>
    <New id="fpp.form.jmx.properties" class="java.util.HashMap">
    <!-- InkJmsQueue -->
    <Put name="inkJmsQueueSize">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">QueueSize</Put>
    </New>
    </Put>
    <Put name="inkJmsConsumerCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">ConsumerCount</Put>
    </New>
    </Put>
    <Put name="inkJmsDequeueCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">DequeueCount</Put>
    </New>
    </Put>
    <Put name="inkJmsAverageEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">AverageEnqueueTime</Put>
    </New>
    </Put>
    <Put name="inkJmsMaxEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="inkJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="inkJmsQueueObjectName" />
    </Put>
    <Put name="attribute">MaxEnqueueTime</Put>
    </New>
    </Put>
    <!--FieldNotifJmsQueue -->
    <Put name="fieldNotifJmsQueueSize">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">QueueSize</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsConsumerCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">ConsumerCount</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsDequeueCount">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">DequeueCount</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsAverageEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">AverageEnqueueTime</Put>
    </New>
    </Put>
    <Put name="fieldNotifJmsMaxEnqueueTime">
    <New class="java.util.HashMap">
    <Put name="urlQueue">
    <Ref id="fieldNotifJmsQueueUrl" />
    </Put>
    <Put name="objectName">
    <Ref id="fieldNotifJmsQueueObjectName" />
    </Put>
    <Put name="attribute">MaxEnqueueTime</Put>
    </New>
    </Put>
    </New>
    <New id="fpp.form.ui.parameters" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
    <Ref id="Server" />
    </Arg>
    <Arg>fpp/fpp.form.ui.parameters</Arg>
    <Arg>
    <New
    class="com.visionobjects.myscript.fpp.ui.parameters.impl.UIParametersServiceImpl">
    <Set name="jmxProperties">
    <Ref id="fpp.form.jmx.properties"></Ref>
    </Set>
    <Set name="serverList">
    <Ref id="server.list"></Ref>
    </Set>
    </New>
    </Arg>
    </New>
    </Configure>
    Thanks so much in advance.
     

  • Java.lang.Exception: org.hibernate.AssertionFailure: scrollable result sets

    Hi All,
    I am using Oracle 11g and I am trying to delete some records from database using some GUI. In that case I am getting following error:
    java.lang.Exception: org.hibernate.AssertionFailure: scrollable result sets are not enabled. When I restart the application's service, this error is going away and deletion is working fine.
    Other related jars that I am using is as follow:
    ojdbc5.jar
    hibernate-3.0.5.jar
    I am attaching the stack trace as well:
    <log4j:event logger="org.hibernate.AssertionFailure" timestamp="1263964931355" sequenceNumber="24" level="ERROR" thread="SocketListener0-2">
    <log4j:message><![CDATA[an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)]]></log4j:message>
    <log4j:throwable><![CDATA[org.hibernate.AssertionFailure: scrollable result sets are not enabled
    at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:368)
    at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:334)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:88)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1162)
    at org.hibernate.loader.Loader.scroll(Loader.java:1634)
    at org.hibernate.loader.hql.QueryLoader.scroll(QueryLoader.java:443)
    at org.hibernate.hql.ast.QueryTranslatorImpl.scroll(QueryTranslatorImpl.java:291)
    at org.hibernate.impl.SessionImpl.scroll(SessionImpl.java:960)
    at org.hibernate.impl.QueryImpl.scroll(QueryImpl.java:62)
    at com.sample.persistence.WorklistItemDAO.purge(WorklistItemDAO.java:145)
    at com.sample.server.worklistmanager.WorklistManager.purge(WorklistManager.java:695)
    at com.sample.server.webservices.CCGPIWorklistHandler.purge(CCGPIWorklistHandler.java:329)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.xmlrpc.Invoker.execute(Invoker.java:130)
    at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
    at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
    at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
    at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:114)
    at com.sample.server.webservices.XmlRpcServlet.service(XmlRpcServlet.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
    at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:666)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
    at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
    at org.mortbay.http.HttpServer.service(HttpServer.java:909)
    at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
    at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
    at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
    at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
    at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
    at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
    ]]></log4j:throwable>
    </log4j:event>
    Thanks
    Shiv

    Hi All,
    anybody got a chance to look into it?
    --Shiv                                                                                                                                                                                                       

  • SQL Grammar Exception in Hibernate

    I executed this query on HQL query editor in netbeans 6.9.1.
    from teacher
    But I got an error like below..
    org.hibernate.exception.SQLGrammarException: could not execute query
         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
         at org.hibernate.loader.Loader.doList(Loader.java:2223)
         at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
         at org.hibernate.loader.Loader.list(Loader.java:2099)
         at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:912)
         at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from limit 100' at line 1
         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:513)
         at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
         at com.mysql.jdbc.Util.getInstance(Util.java:381)
         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
         at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
         at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
         at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
         at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885)
         at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
         at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
         at org.hibernate.loader.Loader.doQuery(Loader.java:674)
         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
         at org.hibernate.loader.Loader.doList(Loader.java:2220)
         ... 8 more
    How can i fix this error.
    Thanks in Advance

    By fixing the HQL query that results in the query that is wrong. So step 1: trace down which HQL query is causing the misery. Step 2: turn on SQL logging to see which sql is generated for that HQL query. Step 3: figure out what is wrong. I can guess that there is something wrong with the annotations on an entity, like declaring something as nullable while it is in fact not according to the database schema. Another common culprit is using a name that is a reserved SQL keyword.
    EDIT:
    'from limit And the keyword name clash is the cause here. Limit is an SQL keyword in MySQL, so you can't use that as a table name.

  • S not found: oracle.jdbc.driver.OracleDriver

    In the log I get this error:
    15:17:14,503 INFO [STDOUT] **** Initilizing HibernatePlugIn **********
    15:17:14,972 INFO [STDOUT] Error while initializing hibernate: JDBC Driver cla
    s not found: oracle.jdbc.driver.OracleDriver
    15:17:14,972 INFO [STDOUT] *************************************

    fixed it by putting the jdbc jar files from oracle lib to the jboss lib

  • Problems with Hibernate/JPA in our current Netweaver project

    Hi together,
    currently we are trying to migrate our Glassfish project to run under Netweaver. Til now, we have used Hibernate as the JPA Implementation.
    If we are trying to deploy our EAR, we get the failure that the EntityManager (Persistance Unit) can not be created.
    Here is our persistence-context.xml
         <persistence-unit name="soiPersistenceUnit" transaction-type="JTA">
              <provider>org.hibernate.ejb.HibernatePersistence</provider>
              <jta-data-source>SOI_DB</jta-data-source>
              <class>de.hr.ec.hai.ejb.entity.Project</class>
              <properties>
                   <property name="hibernate.dialect" value="org.hibernate.dialect.SAPDBDialect" />
                   <property name="hibernate.hbm2ddl.auto" value="update" />
                   <property name="hibernate.show_sql" value="true" />
                   <property name="hibernate.query.substitutions" value="true '1', false '0'" />
                   <property name="hibernate.current_session_context_class" value="jta" />
                   <property name="hibernate.transaction.manager_lookup_class" value="de.hr.ec.hai.ejb.service.SAPWebASTransactionManagerLookup" />
                   <property name="hibernate.jdbc.batch.size" value="1" />
              </properties>
         </persistence-unit>
    Has anyone an good hint to solve the problem?

    Hi,
    In SAP NetWeaver, you should use the persistence.xml file to configure the persistence unit.
    More information: http://help.sap.com/saphelp_nwce711/helpdata/en/46/96ec3c33621e5ce10000000a1553f6/frameset.htm
    Moreover, the properties you have are Hibernate-specific, which is perhaps one of the basic reasons for the problems you experience.
    The SAP JPA platform supports all standard JPA properties (as per the EJB 3.0 specification) + the SAP-specific properties.
    More information: http://help.sap.com/saphelp_nwce711/helpdata/en/77/fe0955fde340b3ab5220182d62b203/frameset.htm
    Not least, you may need to consider the overall Java persistence infrastructure @ SAP.
    More information: http://help.sap.com/saphelp_nwce711/helpdata/en/2d/23b32e8c0152469edf07909703fe03/frameset.htm
    I hope that helps.
    Best,
    Yordan
    P.S. I assume you want to migrate your application to SAP enhancement package 1 for SAP NetWeaver CE 7.1.

  • ORA-01003 Error from jbpm/hibernate

    We are using the JBoss jbpm workflow solution which uses hibernate as the persistence API. Intermittently we are getting failures when it is trying to insert into the jbpm_log table. Looking at low level jdbc logging it appears to be constructing prepared statements correctly and binding variables. Is it possible for this error to be caused by memory issues on the database server side eg lack of free space in shared pool ?
    Extract of server log below:-
    DEBUG - 2007-04-02 13:46:05,003 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (closePreparedStatement:470) - closing statement
    DEBUG - 2007-04-02 13:46:05,004 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (aggressiveRelease:305) - aggressively releasing JDBC connection
    DEBUG - 2007-04-02 13:46:05,005 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (closeConnection:342) - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
    DEBUG - 2007-04-02 13:46:05,006 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (logOpenPreparedStatement:311) - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
    DEBUG - 2007-04-02 13:46:05,007 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (openConnection:322) - opening JDBC connection
    DEBUG - 2007-04-02 13:46:05,008 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] hibernate.SQL (log:346) - insert into JBPM_LOG (INDEX_, DATE_, TOKEN_, PARENT_, TRANSITION_, SOURCENODE_, DESTINATIONNODE_, CLASS_, ID_) values (?, ?, ?, ?, ?, ?, ?, 'T', ?)
    DEBUG - 2007-04-02 13:46:05,010 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (getPreparedStatement:424) - preparing statement
    DEBUG - 2007-04-02 13:46:05,011 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] entity.AbstractEntityPersister (dehydrate:1821) - Dehydrating entity: [org.jbpm.graph.log.TransitionLog#1419786]
    DEBUG - 2007-04-02 13:46:05,012 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (addToBatch:28) - Adding to batch
    DEBUG - 2007-04-02 13:46:05,013 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] entity.AbstractEntityPersister (insert:2034) - Inserting entity: [org.jbpm.graph.log.ActionLog#1419787]
    DEBUG - 2007-04-02 13:46:05,014 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (doExecuteBatch:55) - Executing batch size: 1
    DEBUG - 2007-04-02 13:46:05,017 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (checkRowCount:85) - success of batch update unknown: 0
    DEBUG - 2007-04-02 13:46:05,018 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (logClosePreparedStatement:319) - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
    DEBUG - 2007-04-02 13:46:05,020 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (closePreparedStatement:470) - closing statement
    DEBUG - 2007-04-02 13:46:05,021 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (aggressiveRelease:305) - aggressively releasing JDBC connection
    DEBUG - 2007-04-02 13:46:05,022 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (closeConnection:342) - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
    DEBUG - 2007-04-02 13:46:05,023 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (logOpenPreparedStatement:311) - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
    DEBUG - 2007-04-02 13:46:05,024 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (openConnection:322) - opening JDBC connection
    DEBUG - 2007-04-02 13:46:05,025 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] hibernate.SQL (log:346) - insert into JBPM_LOG (INDEX_, DATE_, TOKEN_, PARENT_, EXCEPTION_, ACTION_, CLASS_, ID_) values (?, ?, ?, ?, ?, ?, 'A', ?)
    DEBUG - 2007-04-02 13:46:05,026 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (getPreparedStatement:424) - preparing statement
    DEBUG - 2007-04-02 13:46:05,027 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] entity.AbstractEntityPersister (dehydrate:1821) - Dehydrating entity: [org.jbpm.graph.log.ActionLog#1419787]
    DEBUG - 2007-04-02 13:46:05,028 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (addToBatch:28) - Adding to batch
    DEBUG - 2007-04-02 13:46:05,030 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] entity.AbstractEntityPersister (insert:2034) - Inserting entity: [org.jbpm.taskmgmt.log.TaskCreateLog#1419788]
    DEBUG - 2007-04-02 13:46:05,031 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (doExecuteBatch:55) - Executing batch size: 1
    DEBUG - 2007-04-02 13:46:05,126 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (logClosePreparedStatement:319) - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
    DEBUG - 2007-04-02 13:46:05,127 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.AbstractBatcher (closePreparedStatement:470) - closing statement
    DEBUG - 2007-04-02 13:46:05,129 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (aggressiveRelease:305) - aggressively releasing JDBC connection
    DEBUG - 2007-04-02 13:46:05,130 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] jdbc.ConnectionManager (closeConnection:342) - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
    DEBUG - 2007-04-02 13:46:05,132 [[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'] util.JDBCExceptionReporter (logExceptions:63) - Could not execute JDBC batch update [insert into JBPM_LOG (INDEX_, DATE_, TOKEN_, PARENT_, EXCEPTION_, ACTION_, CLASS_, ID_) values (?, ?, ?, ?, ?, ?, 'A', ?)]
    java.sql.BatchUpdateException: ORA-01003: no statement parsed
         at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:367)
         at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9040)
         at weblogic.jdbc.wrapper.PreparedStatement.executeBatch(PreparedStatement.java:157)
         at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
         at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:91)
         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
         at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
         at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2048)
         at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427)
         at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
         at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
         at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
         at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
         at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1007)
         at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:354)
         at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:135)
         at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:161)
         at org.jbpm.svc.Services.close(Services.java:211)
         at org.jbpm.JbpmContext.close(JbpmContext.java:138)

    Hi Joe, Thanks for your quick response. I have sent you an email regarding a BEA support case we have raised for this.
    Just to add some more info here :-
    The failure on the insert into jbpm_log only happens intermittently, 99% are successfully inserted including the exact same insert statement (with different bind variable values).
    My thoughts on investigating this are that it could be to do with statement caching as it does appear that the cursor that weblogic has cached a handle to may be invalid in terms of the shared sql is no longer in the oracle shared pool. I would have expected that Oracle would have reparsed the statement and it shouldnt fail but I am not familiar with the detail of weblogic statement caching implementation, only of the oracle jdbc driver level.
    Occassionally I have also seem the following Oracle error and dont know whether there is some connection with this.
    ORA-01461: can bind a LONG value only for insert into a LONG column

  • Java6, tomcat6, ojdbc6.jar and hibernate 3.3

    We were running an application with Oracle 10g, tomcat5 and java5 with ojdbc5.jar and hibernate 3 without any issues. We recently upgraded to java6, tomcat6, ojdbc6.jar and hibernate 3.3. We created a new instance of the Oracle10g database. We are now seeing intermittent errors at least once a week. The errors are:
    [ WARN] 12/11 09:52:02 (JCLLoggerAdapter:warn:357)-SQL Error: 17447, SQLState: 99999
    [ERROR] 12/11 09:52:02 (JCLLoggerAdapter:error:454)-OALL8 is in an inconsistent state
    With the following causes:
    Caused by: java.sql.SQLException: Protocol violation
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1053)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
    at org.hibernate.loader.Loader.doQuery(Loader.java:697)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2232)
    and
    java.sql.SQLException: Bigger type length than Maximum
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2253)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB2(T4CMAREngine.java:1101)
    at oracle.jdbc.driver.T4CTTIoer.unmarshal(T4CTTIoer.java:248)
    at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:115)
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:539)
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3432)
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3438)
    at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301)
    at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200)
    at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:170)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:146)
    and
    Caused by: java.sql.SQLException: OALL8 is in an inconsistent state
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:474)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:180)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
    at org.hibernate.loader.Loader.doQuery(Loader.java:697)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2232)
    The errors occur when the user is querying for a list of objects. It does not seem to matter which list or type of objects. Attempting to recreate the error has not been fruitful - the queries are typical and ordinary routine data pulls. In the forums we see a lot posts about compatibility between drivers. The oracle 10g is using the ojdbc14.jar in its lib. Do we need to update this? Can we run java 6 against the 10g instance reliably?
    We have also seen a similiar issue occur once when the user tried a normal save:
    [ WARN] 12/11 10:00:11 (JCLLoggerAdapter:warn:357)-SQL Error: 17447, SQLState: 99999
    [ERROR] 12/11 10:00:11 (JCLLoggerAdapter:error:454)-OALL8 is in an inconsistent state
    [ERROR] 12/11 10:00:11 (OwnerHolder:doSave:787)-Problem occurred trying to prepare the info for save
    org.hibernate.exception.GenericJDBCException: could not get next sequence value
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:119)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:535)
    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
    at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523)
    at us.ca.santaclara.co.tax.tcas.dao.ParentDao.save(ParentDao.java:56)
    Caused by: java.sql.SQLException: OALL8 is in an inconsistent state
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:474)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:180)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
    at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:98)
    [ERROR] 12/11 10:00:11 (JCLLoggerAdapter:error:532)-JDBC commit failed
    java.sql.SQLException: Protocol violation
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
    at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:130)
    at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:539)
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3432)
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:3438)
    at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.commit(DelegatingConnection.java:301)
    at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:200)
    at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:170)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:146)

    Thanks For the Post. It occurs mostly in my app too which uses oracle 10G with ojdbc14.jar , but client in weblogic 10.3 has ojdbc6.jar. My logic is , at that time network was impaired and oracle could not find exact cause of error. To replicate you can input severly in multiple threads same query to oracle so it cannot get timeout values or cannot serve incoming requests withing certain allowed timeframes. If you are using a RAC , it cannot SYNC those cache and memory dumps in GCS , PGA, and SGA, thus inconsistent state.

  • Destroying connection that is not valid, due to the following exception [com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset]

    Hi everyone, 
    I'm facing the following problem in a Server runing Linux with JBoss AS 4.2.2, JRE 1.6, and MSSQL Server 2005 with JDBC 2.0 (sqljdbc4.jar).
    The thing is: on friday morning I started up the server and everything worked fine ... next, from Friday at 6pm to Saturday at 8am nobody has used the system. 
    Then on Saturday at 8:05 got the following warning lines every time I tried to do something in my application. While it seems that everything works, after a few days the system starts to decrease their performance and malfunction, so I want to know why it
    might happen these warnings.
    I have tried to find a solution to this problem in several places but I'm not succeeding. That's why I'm writing my problem here... 
    Hope somebody can help me!
    Thanks in advance and best regards!
    Cristian.
    This is the "error" log.
    2011-06-11 08:05:29,680 WARN [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory] Destroying connection that is not valid, due to the following exception: ConnectionID:2941
    com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1339)
    at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1654)
    at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:3694)
    at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:5022)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:773)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:676)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:649)
    at org.jboss.resource.adapter.jdbc.CheckValidConnectionSQL.isValidConnection(CheckValidConnectionSQL.java:58)
    at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:435)
    at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkValid(BaseWrapperManagedConnection.java:231)
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.matchManagedConnections(LocalManagedConnectionFactory.java:200)
    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:211)
    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:538)
    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
    at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:315)
    at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
    at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
    at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
    at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
    at org.hibernate.loader.Loader.doQuery(Loader.java:673)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    at org.hibernate.loader.Loader.doList(Loader.java:2220)
    And this is my mssql-ds.xml
    <local-tx-datasource>
    <jndi-name>jdbc/bpmsdb</jndi-name>
    <connection-url>jdbc:sqlserver://ipaddress:1433;DatabaseName=BPMS</connection-url>
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    <user-name>user</user-name>
    <password>pwd</password>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <exception-sorter-class-name>
    org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    </exception-sorter-class-name>
    <metadata>
    <type-mapping>MS SQLSERVER2000</type-mapping>
    </metadata>
    <new-connection-sql>select 1</new-connection-sql>
    <check-valid-connection-sql>select 1</check-valid-connection-sql>
    <idle-timeout-minutes>5</idle-timeout-minutes>
    </local-tx-datasource>

    I´m facing similar problem with Linux and SQL Server 2008 R2. I made the downgrade of JDK 1.6 from 27 to 26 (some people reporting errors when upgraded to jdk1.6_29 and rolling back is ok) but for me the error persists. At this moment we are testing with
    sqljdbc4.jar version 4.0 (released in 3/6/2012). The curious I have two equals Linux boxes and only one have presented connection reset errors.
    Thanks in advance.
    Carlos

  • JSF calls DAO layer based on  JPA/Hibernate throws NPE

    I'm new in JSF and Hibernate;
    I'm using Hibernate as JPA provider, the dataaccess is tied to DAO layer; when my JSF controller(UserController) calls the getUsers() of my DAO layer
    (Glassfish is the app Server I use)
    NullpointerException is thrown, I assume it's because instance of BasicDAO is initialized, where do I have to instantiate BasicDAO
    here is my code :
    public class BasicDAO {      
    @PersistenceUnit(unitName = "test5PU")
    private EntityManager entityManager;
    public void setEntityManager(EntityManager entityManager)
    {        this.entityManager = entityManager;    }
    public List getUsers() {       
    Query query = entityManager.createNamedQuery("User.findAllUsers");
    return query.getResultList();
    public User findUser(String id) {       
    try{
    Query q = entityManager.createNamedQuery("User.findByIdUser");
    User o = (User)q.getSingleResult();
    return o;
    } finally {
    entityManager.close();
    public class UserController {
    /** Creates a new instance of UserController */
    public UserController() {      
    private DataModel model;
    private BasicDAO basicDAO;
    public DataModel getUsers() {            
    return new ListDataModel(basicDAO.getUsers());
    public void setBasicDAO(BasicDAO basicDAO) {     
    this.basicDAO = basicDAO;
    public BasicDAO getBasicDAO() {           
    return this.basicDAO;
    public User findUser(String id) {
    return basicDAO.findUser(id);
    List.jsp :
    <h:dataTable value='#{user.users}' var='item' border="1" cellpadding="2" cellspacing="0">
    <h:column>
    <f:facet name="header">
    <h:outputText value="IdUser"/>
    </f:facet>
    <h:outputText value="#{item.idUser}"/>
    </h:column>
    <h:column>
    <f:facet name="header">
    <h:outputText value="Password"/>
    </f:facet>
    <h:outputText value="#{item.password}"/>
    </h:column>
    </h:dataTable>

    in fact, i did some tests, and the reason why the NPE happens revealed to be caused by the call to
    this.emf = Persistence.createEntityManagerFactory(persistenceUnitName, emfProperties);
    which returns NULL value, and later when emf is accessed to create entitymanager NullPointerException is thrown.
    I think there is a configuration probem some where, except in persistence.xml file. my persistence.xml content is :
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="test9PU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>JeeCertDB</jta-data-source>
    <class>persistence.user.User</class>
    <properties>
    <property name="hibernate.jdbc.driver"
    value="com.mysql.jdbc.Driver" />
    <property name="hibernate.jdbc.url"
    value="jdbc:mysql://localhost:3306/JeeCertDB" />
    <property name="hibernate.jdbc.user" value="root" />
    <property name="hibernate.jdbc.password" value="belly" />
    <property name="hibernate.logging.level" value="INFO" />
    </properties>
    </persistence-unit>
    </persistence>
    Message was edited by:
    S_screen

  • Hibernate and ora_rowscn

    We are trying to implement optimistic locking through the used of ORA_ROWSCN, and the developers are running into the problem that hibernate is incrementing the ora_rowscn number when updates are done on the row.
    Develpers don't see a way to make using ORA_ROWSCN work with the second-level cache. If they could tell Hibernate to invalidate the cache when updates are done instead of put the updated entity directly into the cache, they think they could make it work. Unfortunately they haven't been able to find a way to modify the cache's behavior.
    Has anybody run into this problem?
    I will appreciate any suggestions on how to make hibernate to work with ora_rowscn.
    We are using Spring 2.5.6 with JPA Hibernate Entity Manager 3.3.2 running on Tomcat 6, we are not using OC4J.
    We are using Atomikos 2.1.7 for our transaction manager, and here are some of our hibernate settings:
    jpa.hibernate.max_fetch_depth=2
    jpa.hibernate.default_batch_fetch_size=16
    jpa.hibernate.order_updates=true
    jpa.hibernate.connection.isolation=4
    jpa.hibernate.generate_statistics=true
    jpa.hibernate.jdbc.use_get_generated_keys=false
    jpa.hibernate.jdbc.fetch_size=0
    jpa.hibernate.jdbc.batch_size=30
    jpa.hibernate.connection.release_mode=after_statement
    jpa.hibernate.default_schema=
    jpa.hibernate.strict_jpaql=true
    jpa.hibernate.cache.use_second_level_cache=true
    jpa.hibernate.cache.use_query_cache=true
    Thanks in advance for any help on this.

    thanks for your reply.
    We are already doing that, but even with that setting we still have the problem and we cannot get hibernate to not increment the ora_rowscn.
    This is what we have in our code.
    @Version
    @Column(name = "ORA_ROWSCN", insertable = false, updatable = false)
    @org.hibernate.annotations.Generated(GenerationTime.ALWAYS)
    private Long version;
    Did anybody run into this problem with hibernate using ora_rowscn?
    Any help will be greatly appreciated.
    Thanks

  • Hibernate + GenericJDBCException + SQLException + 10g XE

    Hi,
    I'm using Hibernate as OR mapper together with Java Spring framework and 10g XE.
    During 'normal' application usage the oracle database performs well, however during junit testing when the system is set up and torn down many times in a short time intervall the following error occurs.
    Stacktrace:
    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
    Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
         at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
         at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
         at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
         at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
         at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
         at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
         at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:510)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
         at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
         at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:630)
         at com.drutt.pandora.dao.PandoraManager$$EnhancerByCGLIB$$72858c7c.getContenthost(<generated>)
         at com.drutt.pandora.controller.BillingController.handleRequest(BillingController.java:104)
         at com.emdo.test.TestBillingController.handleRequestErrCid(TestBillingController.java:114)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
         at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
         at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
         at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
         at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
         at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
         at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
         at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
         at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
         at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
         at com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:78)
         at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
    Caused by: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    The Connection descriptor used by the client was:
    <IP_NUMBER>:1521:XE
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
         at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
         at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
         at java.sql.DriverManager.getConnection(DriverManager.java:582)
         at java.sql.DriverManager.getConnection(DriverManager.java:154)
         at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
         at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
         at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
         at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:240)
         at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
         at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getConnection(TransactionAwareDataSourceProxy.java:109)
         at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
         at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
         ... 39 moreI've had a glance at similar problems like http://jira.atlassian.com/browse/CONF-6005 and
    Re: Intermittent ORA-12519 error on 10g XE
    The consensus of mentioned threads was to increase processes and session.
    This had unfortunately no noticeable effect.
    init.ora
    SESSIONS=100
    PROCESSES=150
    SCOPE=SPFILESome selected configurables for hibernate
    hibernate.dialect org.hibernate.dialect.Oracle9Dialect
    hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
    hibernate.connection.username user
    hibernate.connection.password pass
    hibernate.connection.url jdbc:oracle:thin:@<my_database_url>:1522:bAny other tips or ideas would be greatly appreciated.

    Can you tnsping or connect with sqlplus to XE instance?
    [oracle@tcellhost db_1]$ tnsping tcell
    TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 08-AUG-2007 16:46:45
    Copyright (c) 1997, 2006, Oracle. All rights reserved.
    Used parameter files:
    /u01/app/oracle/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tcellhost.tcelldomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = tcell.tcelldomain)))
    OK (10 msec)
    [oracle@tcellhost db_1]$ sqlplus hr/hr@tcell
    SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 8 16:46:53 2007
    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL>
    Best regards.

Maybe you are looking for

  • Photo Gallery not opening

    << Branched from an old discussion about photo gallery not opening >> I had a similar problem, only it was because i was in the phone deleting files that i thought i didnt want. UGH! I think mine was due to facebook and not syncing. My gallery would

  • Disabling SOAP sender adapter authentication

    How can I disable user/password authentication in a SOAP sender adapter?

  • HT5760 'Group Messaging' on a iPhone 4

    I don't have the option to turn on 'Group Messaging', is this feature avialble on a iPhone 4?

  • How do you easily move pictures around in a book design?

    When I place an image into a book, I cant move it arround. The image is placed in a centered position, but it crops it incorectly. I dont need to scale it or crop it, just to move it arroun with-in the bounding image box. Thanks much

  • Shockwave Player two versions installed.

    I am using Adobe Shockwave Player 11.6 on Windows XP Pro and I.E.8.  Windows Add/Remove Programs lists as installed programs both Shockwave Player 11.6 and Shockwave player 11.5.  Can I safely uninstall version 11.5 without afftecting 11.6 or Adobe F