Hey - I'm from the same company as Torsten Terp, så the answars go for both
of us :-)

> Hi,
>
> How do you determine if the data is in the database?  My recent experience
> is that isql is very flakey, I couldn't see results in it that my jboss
> client could see.  I have an ant-based sql-xml task however that
> consistently sees just what the jboss client sees.  You could try ant's
> sqlexec task or I would be happy to send you mine.

We are using the Interbase 1.6.
For all our database updates we have switches from the visual IBconsole, to
ISql. The main reason is in IBConsole the program was unable to "release" a
table. F.ex. if we make a temp. table, copy all data to this table, and then
tries to drop the table, IBconsole tells us that the table is in use!
Whenever we do use IBconsole, we always disconnect after updates, and
data-saves. The data was visible to JBoss instantly.
The ISql have no problems with the above problems.

> Remember that Firebird/Interbase by default has snapshot transaction
> isolation - not read committed.  In particular this means that if
> you start
> a transaction in isql-- I'm not sure if this happens when you log in or
> execute a select statement-- you will see noones updates until you commit
> (after your read only query.  Takes a little getting used to-- but allows
> for accurate reports).
>
> On the other hand, the odd results I was seeing seemed to go beyond this
> transaction isolation behavior.
>
> I'm curious if this provides a consitent view of the data for you.

When is JBoss excepted to save data to the database ?
I though JBoss was expected to delay the physical UPDATE / INSERT statements
due to 1: performance (only one update statement, instead of a lot of single
updates) and 2: missing values (in a INSERT JBoss need all NOT-NULL values
before it can make the INSERT statement.

 - René

>
> Thanks
> David Jencks
> On 2001.03.27 12:36:57 -0500 Michael Quigley wrote:
> > Torsten,
> >
> > > We are currently using Interbase in a pre-production environment.
> > > (an e-commerce mall) So far it performs acceptable, but because
> > > we are only in a test phase now there is a chance we will have to
> > > switch to Oracle... i'll let you know if you like?!
> >
> > Have you noticed any peculiarities with your CMP beans and transactions?
> > I'm
> > running InterBase 6.0 (not 6.0.1) on Linux, with InterClient
> version 2.0.
> > So
> > far I've noticed very intermittent and strange behavior with my CMP
> > beans--it almost seems like the transactions aren't committing.
> >
> > I've got a CMP entity bean named Account, which contains 4
> fields. I have
> > a
> > client which creates 10 Account instances and terminates. Even if the
> > client
> > appears to execute properly and exits, I sometimes end up with no new
> > Account instances showing up in the database. And other times they will
> > show
> > up. It's the oddest thing. I can't find an explanation for the behavior.
> >
> > I'm going to upgrade my InterBase installation to 6.0.1 and give it
> > another
> > try. My JBoss 2.1 installation is the integrated JBoss/Tomcat
> integration
> > off the jboss.org site. At startup time it shows:
> >
> > [Default] JBoss 2.1-BETA Started in 0m:15s
> >
> > Is 2.1-BETA the current version?
> >
> > Here are some excerpts from my configuration:
> >
> > ---- jboss.jcml ----
> >
> >   <mbean code="org.jboss.jdbc.JdbcProvider"
> > name="DefaultDomain:service=JdbcProvider">
> >      <attribute name="Drivers">interbase.interclient.Driver</attribute>
> >   </mbean>
> >
> >   <mbean code="org.jboss.jdbc.XADataSourceLoader"
> > name="DefaultDomain:service=XADataSource
> > ,name=InterbaseDS">
> >     <attribute name="PoolName">InterbaseDS</attribute>
> >     <attribute
> >
> name="DataSourceClass">org.opentools.minerva.jdbc.xa.wrapper.XADat
> aSourceIm
> > pl</attribute>
> >     <attribute name="Properties"/>
> >     <attribute
> > name="URL">jdbc:interbase://blackangel/d1/db/bmk.gdb</attribute>
> >     <attribute name="GCMinIdleTime">1200000</attribute>
> >     <attribute name="JDBCUser">sysdba</attribute>
> >     <attribute name="Password">xxxx</attribute>
> >     <attribute name="MaxSize">4</attribute>
> >     <attribute name="GCEnabled">false</attribute>
> >     <attribute name="InvalidateOnError">false</attribute>
> >     <attribute name="TimestampUsed">false</attribute>
> >     <attribute name="Blocking">true</attribute>
> >     <attribute name="GCInterval">120000</attribute>
> >     <attribute name="IdleTimeout">1800000</attribute>
> >     <attribute name="IdleTimeoutEnabled">false</attribute>
> >     <attribute name="LoggingEnabled">false</attribute>
> >     <attribute name="MaxIdleTimeoutPercent">1.0</attribute>
> >     <attribute name="MinSize">4</attribute>
> >   </mbean>
> >
> > ---- ejb-jar.xml ----
> >
> > <ejb-jar>
> >   <enterprise-beans>
> >     <entity>
> >       <description>Account</description>
> >       <display-name>Account</display-name>
> >
> >       <ejb-name>Account</ejb-name>
> >       <home>com.quigley.dashboard.ejb.AccountHome</home>
> >       <remote>com.quigley.dashboard.ejb.Account</remote>
> >       <ejb-class>com.quigley.dashboard.ejb.AccountBean</ejb-class>
> >
> >       <persistence-type>Container</persistence-type>
> >
> <prim-key-class>com.quigley.dashboard.ejb.AccountPK</prim-key-class>
> >       <reentrant>False</reentrant>
> >
> >       <cmp-field>
> >         <field-name>id</field-name>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>login</field-name>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>password</field-name>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>description</field-name>
> >       </cmp-field>
> >     </entity>
> >   </enterprise-beans>
> >
> >   ...
> >
> >   <assembly-descriptor>
> >     <container-transaction>
> >       <method>
> >         <ejb-name>Account</ejb-name>
> >         <method-name>*</method-name>
> >       </method>
> >
> >       <trans-attribute>RequiresNew</trans-attribute>
> >     </container-transaction>
> >   </assembly-descriptor>
> > </ejb-jar>
> >
> > ---- jaws.xml ----
> >
> > <jaws>
> >   <datasource>InterbaseDS</datasource>
> >   <type-mapping>InterBase</type-mapping>
> >
> >   <enterprise-beans>
> >
> >     <!-- ====== Account =========================================== -->
> >     <entity>
> >       <ejb-name>Account</ejb-name>
> >       <table-name>ACCOUNT</table-name>
> >       <create-table>false</create-table>
> >
> >       <cmp-field>
> >         <field-name>id</field-name>
> >         <column-name>ACCT_ID</column-name>
> >         <jdbc-type>INTEGER</jdbc-type>
> >         <sql-type>INTEGER</sql-type>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>login</field-name>
> >         <column-name>ACCT_LOGIN</column-name>
> >         <jdbc-type>VARCHAR</jdbc-type>
> >         <sql-type>VARCHAR(64)</sql-type>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>password</field-name>
> >         <column-name>ACCT_PASSWORD</column-name>
> >         <jdbc-type>VARCHAR</jdbc-type>
> >         <sql-type>VARCHAR(64)</sql-type>
> >       </cmp-field>
> >
> >       <cmp-field>
> >         <field-name>description</field-name>
> >         <column-name>ACCT_DESCRIPTION</column-name>
> >         <jdbc-type>VARCHAR</jdbc-type>
> >         <sql-type>VARCHAR(128)</sql-type>
> >       </cmp-field>
> >     </entity>
> >   </enterprise-beans>
> > </jaws>
> >
> > ---- AccountClient.java ----
> >
> > ...
> > public class AccountClient {
> >
> >     /*
> >      * JNDI Context.
> >      */
> >     static Context jndiCtx = null;
> >
> >
> >
> //----------------------------------------------------------------
> ----------
> >
> >     /*
> >      * Main.
> >      */
> >     public static void main(String[] arg) throws Exception {
> >         // Create a JNDI Context.
> >         jndiCtx = new InitialContext();
> >
> >         // Find the SequenceHome in JNDI.
> >         SequenceHome seqHome = (SequenceHome)
> jndiCtx.lookup("Sequence");
> >
> >         // Create a new Sequence EJB instance.
> >         Sequence seq = seqHome.create();
> >
> >         // Find the AccountHome in JNDI.
> >         AccountHome accHome = (AccountHome) jndiCtx.lookup("Account");
> >
> >         // Iterate 100 times.
> >         for(int i = 0; i < 10; i++) {
> >
> >             // Allocate a new ID.
> >             int id = (int) seq.allocAccountId();
> >
> >             // Message.
> >             System.out.println("Instance #" + i + ": " + id);
> >
> >             // Create a new Account EJB instance.
> >             Account a = accHome.create(id);
> >
> >             // Create an AccountHolder with the data.
> >             a.setHolder(new AccountHolder(id, "login" + i, "password" +
> > i,
> >                                           "description" + i));
> >         }
> >
> >         // Remove the Sequence EJB instance.
> >         seq.remove();
> >     }
> > }
> >
> >
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/jboss-user
> >
>
>
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
>


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to