Hi Joel,

Looks like we're doing the right thing. I see this pattern several times in
the trace :

DEBUG - Found datasource1: datasource -672870675 from configuration.
StoreContext: org.apache.openjpa.kernel.FinalizingBrokerImpl@c38157
DEBUG - Executing query: select t from Test t
DEBUG - <t 14892568, conn 16886931> executing prepstmnt 13312389 SELECT
t0.ID, t0.NAME FROM TEST t0
DEBUG - <t 14892568, conn 16886931> [1 ms] spent
DEBUG - <t 14892568, conn 16886931> [0 ms] close
DEBUG - Found datasource1: datasource -672870675 from configuration.
StoreContext: org.apache.openjpa.kernel.FinalizingBrokerImpl@127ff0d
DEBUG - Executing query: select t from Test t
DEBUG - <t 14892568, conn 21860890> executing prepstmnt 29290924 SELECT
t0.ID, t0.NAME FROM TEST t0
DEBUG - <t 14892568, conn 21860890> [1 ms] spent
DEBUG - <t 14892568, conn 21860890> [0 ms] close

The connection is being closed between each SELECT statement. The only thing
we're reusing is the datasource which should be fine.

Have you set any BoneCP properties, or are you using the defaults?


-mike

On Tue, Feb 8, 2011 at 9:07 AM, Joel Halbert <[email protected]> wrote:

> Hi Mike,
>
> I've attached the log file generated with those log level settings.
>
> The test iterates a couple of times before I insert a row into the
> database. This time the new record was picked up, but then I inserted
> several new rows and they were not picked up on any of the subsequent
> iterations.
>
> I was using the following config:
>
>
> <properties>
>        <property name="openjpa.jdbc.SynchronizeMappings"
> value="buildSchema"/>
>        <property name="openjpa.ConnectionDriverName"
>  value="com.jolbox.bonecp.BoneCPDataSource" />
>        <property name="openjpa.ConnectionProperties"
> value="DriverClassName=com.mysql.jdbc.Driver,jdbcUrl=jdbc:mysql://localhost:3306/sitedelta,Username=sitedelta,Password=sitedelta,partitionCount=3"/>
>
>        <property name="openjpa.DataCache" value="false"/>
>        <property name="openjpa.QueryCache" value="false"/>
>
>         <property name="openjpa.Log"
> value="JDBC=TRACE,SQL=TRACE,RUNTIME=TRACE"/>
> </properties>
>
>
> On Tue, 2011-02-08 at 08:55 -0600, Michael Dick wrote:
> > There's something odd here with BoneCP's thread affinity.
> >
> > Could you enable OpenJPA trace (eg <property name="openjpa.Log"
> > value="JDBC=TRACE,SQL=TRACE"/> ). That should show all of our
> interactions
> > with the connection.
> >
> > Which database are you using?
> >
> > -mike
> >
> > On Tue, Feb 8, 2011 at 6:44 AM, Joel Halbert <[email protected]>
> wrote:
> >
> > > OK, so I was using BoneCP as the connection pool manager.
> > > When I reverted to DHCP the problem vanished.
> > >
> > > Any ideas as to why this should be the case?
> > >
> > >
> > >
> > > On Tue, 2011-02-08 at 12:23 +0000, Joel Halbert wrote:
> > > > Hi,
> > > >
> > > > I have performed a test to confirm that I don't seem to be able to
> > > > disable caching (2.0.1).
> > > >
> > > > I've set the following properties:
> > > >
> > > >
> > > > <property name="openjpa.DataCache" value="false"/>
> > > > <property name="openjpa.QueryCache" value="false"/>
> > > > <property name="openjpa.jdbc.QuerySQLCache" value="false"/>
> > > >
> > > >
> > > >
> > > > And I can see the correct values of these properties are logged out
> when
> > > > I start my app.
> > > >
> > > >
> > > > When I create the entity Test.java  (below), and run it's main method
> > > > (with the TEST table empty to start with) and then subsequently
> manually
> > > > insert into the test table:
> > > >
> > > > insert into TEST values (1,'a');
> > > >
> > > > it never picks up on the inserted values, even though I am creating a
> > > > new EntityManager for each iteration where I perform the query on
> Test.
> > > >
> > > > What could I be doing wrong!?
> > > >
> > > > Thanks
> > > > Joel
> > > >
> > > > --------------------------------------------------
> > > >
> > > >
> > > >
> > > >
> > > > package com.su3analytics.sitedelta.model;
> > > >
> > > >
> > > >
> > > > import java.util.List;
> > > >
> > > > import javax.persistence.Access;
> > > > import javax.persistence.AccessType;
> > > > import javax.persistence.Column;
> > > > import javax.persistence.Entity;
> > > > import javax.persistence.EntityManager;
> > > > import javax.persistence.EntityManagerFactory;
> > > > import javax.persistence.GeneratedValue;
> > > > import javax.persistence.GenerationType;
> > > > import javax.persistence.Id;
> > > > import javax.persistence.Persistence;
> > > > import javax.persistence.Table;
> > > > import javax.persistence.TypedQuery;
> > > >
> > > > @Entity
> > > > @Access(AccessType.PROPERTY)
> > > > @Table(name="TEST")
> > > > public class Test {
> > > >
> > > >       private int id;
> > > >       private String name;
> > > >
> > > >       @Id
> > > >       @GeneratedValue(strategy = GenerationType.IDENTITY)
> > > >       @Column(name="ID")
> > > >       public int getId() {
> > > >               return id;
> > > >       }
> > > >       public void setId(int id) {
> > > >               this.id = id;
> > > >       }
> > > >
> > > >       @Column(name="NAME")
> > > >       public String getName() {
> > > >               return name;
> > > >       }
> > > >       public void setName(String name) {
> > > >               this.name = name;
> > > >       }
> > > >
> > > >       // SIMPLE TEST CASE
> > > >       public static void main(String[] args) throws Exception {
> > > >               EntityManagerFactory factory =
> > > Persistence.createEntityManagerFactory("su3", null);
> > > >               while(true) {
> > > >                       EntityManager em =
> factory.createEntityManager();
> > > >                       TypedQuery<Test> q = em.createQuery("select t
> from
> > > Test t", Test.class);
> > > >                       List<Test> res = q.getResultList();
> > > >                       for (Test t :res) {
> > > >                               System.out.println(t.getId()+", " +
> > > t.getName());
> > > >                       }
> > > >                       Thread.sleep(1000);
> > > >                       em.close();
> > > >               }
> > > >       }
> > > > }
> > > >
> > >
> > >
> > >
>
>

Reply via email to