First I use the mbean of jboss in my project,the project run ok! but i meet a big problem,i don't know this thing is a fatal bug to the hibernate!!!!!
some one tell me,the way that i use to test my project is not so good(or it is very bad),but i use the bad way to test the other project that does not use hibernate(but use the datasource of jboss in mbean)
The bad way is write a jsp page,the page write a record to oracle8.1.7,then i press the botton of F5 down to refresh the JSP page for a minute(in one minute,refesh the jsp again,again and again),the jboss should not tell the abnormity on the console at least.
i only use the datasource in the mbean of jboss,i press the F5 botton for ten minute,the jboss runs perfectly,does not tell any error!
the jsp code:
Code:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="net.sf.hibernate.SessionFactory" %>
<%@ page import="net.sf.hibernate.Session" %>
<%@ page import="net.sf.hibernate.Transaction" %>
<%!
javax.sql.DataSource ds;
SessionFactory sf;
Session objSession;
Transaction tx;
%>
<%
try {
Context ctx = new InitialContext();
ds = (javax.sql.DataSource)ctx.lookup("java:/OracleDS_192.168.3.35");
Connection conn = ds.getConnection();
Statement st = conn.createStatement();
String strInsert = "insert into rkxx_xh(rkxh,jmzh) values('222','333')";
st.executeUpdate(strInsert);
st.close();
conn.close();
out.println("super start.<br>");
} catch (Exception e) {
out.println("error!!!!!!!!!!!!!!" + e.toString());
}
finally
{
}
%>
but i use hibernate in the mbean of jboss(i press the F5 button to refesh the JSP page for a minute),then the hibernate tell some error on console of jboss:
the JSP CODE:
Code:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="net.sf.hibernate.SessionFactory" %>
<%@ page import="net.sf.hibernate.Session" %>
<%@ page import="net.sf.hibernate.Transaction" %>
<%!
javax.sql.DataSource ds;
SessionFactory sf;
Session objSession;
Transaction tx;
%>
<%
try {
Context ctx = new InitialContext();
out.println("start use the hibernate<br>");
sf = (SessionFactory)ctx.lookup("java:/hibernate/HibernateFactory");
objSession = sf.openSession();
tx = objSession.beginTransaction();
com.SFHC.RepairSFHC.DB.SFHCNO objNo = new com.SFHC.RepairSFHC.DB.SFHCNO();
objNo.setv_JMZH("11111111");
objSession.save(objNo);
objSession.flush();
if(tx!=null)
tx.commit();
out.println("succeed to mark a record!<br>");
} catch (Exception e) {
if(tx!=null)
tx.rollback();
out.println("error!!!!!!!!!!!!!!" + e.toString());
}
finally
{
objSession.close();
}
%>
after I press the F5 to refresh the JSP page ,the jboss tell me the erro info:
...this page is succeed deploy and connect the database use hibernate.Code:
10:52:46,921 INFO [MainDeployer] Deployed package: file:/D:/Odin/ElsaJava/hiber
nate/server/jboss-3.2.3/server/default/deploy/b.txt
10:52:46,921 INFO [URLDeploymentScanner] Started jboss.deployment:type=Deployme
ntScanner,flavor=URL
10:52:47,201 INFO [MainDeployer] Deployed package: file:/D:/Odin/ElsaJava/hiber
nate/server/jboss-3.2.3/server/default/conf/jboss-service.xml
10:52:47,201 INFO [Server] JBoss (MX MicroKernel) [3.2.3 (build: CVSTag=JBoss_3
_2_3 date=200311301445)] Started in 1m:13s:526ms
11:25:11,747 INFO [HibernateServiceMBean] stopping service
11:25:11,787 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:11,787 INFO [SessionFactoryImpl] closing
11:25:11,797 INFO [SessionFactoryObjectFactory] Unbinding factory: java:/hibern
ate/HibernateFactory
11:25:11,807 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:11,807 INFO [SessionFactoryObjectFactory] Unbound factory from JNDI name:
java:/hibernate/HibernateFactory
11:25:11,807 INFO [TxConnectionManager] Stopping jboss.jca:service=LocalTxCM,na
me=OracleDS
11:25:11,807 INFO [JBossManagedConnectionPool] Stopping jboss.jca:service=Manag
edConnectionPool,name=OracleDS
11:25:14,902 INFO [RARDeployment] Stopping jboss.jca:service=ManagedConnectionF
actory,name=OracleDS
11:25:14,902 INFO [TxConnectionManager] Stopping jboss.jca:service=LocalTxCM,na
me=OracleDS_192.168.3.35
11:25:14,902 INFO [JBossManagedConnectionPool] Stopping jboss.jca:service=Manag
edConnectionPool,name=OracleDS_192.168.3.35
11:25:15,202 INFO [RARDeployment] Stopping jboss.jca:service=ManagedConnectionF
actory,name=OracleDS_192.168.3.35
11:25:15,212 INFO [TxConnectionManager] Stopping jboss.jca:service=LocalTxCM,na
me=OracleDS_192.168.3.172
11:25:15,222 INFO [JBossManagedConnectionPool] Stopping jboss.jca:service=Manag
edConnectionPool,name=OracleDS_192.168.3.172
11:25:15,793 INFO [RARDeployment] Stopping jboss.jca:service=ManagedConnectionF
actory,name=OracleDS_192.168.3.172
11:25:15,793 INFO [MainDeployer] Starting deployment of package: file:/D:/Odin/
ElsaJava/hibernate/server/jboss-3.2.3/server/default/deploy/oracle-ds.xml
11:25:16,173 INFO [RARDeployment] Started jboss.jca:service=ManagedConnectionFa
ctory,name=OracleDS_192.168.3.172
11:25:16,193 INFO [JBossManagedConnectionPool] Started jboss.jca:service=Manage
dConnectionPool,name=OracleDS_192.168.3.172
11:25:16,524 INFO [172] Bound connection factory for resource adapter for Conne
ctionManager 'jboss.jca:service=LocalTxCM,name=OracleDS_192.168.3.172 to JNDI na
me 'java:/OracleDS_192.168.3.172'
11:25:16,524 INFO [TxConnectionManager] Started jboss.jca:service=LocalTxCM,nam
e=OracleDS_192.168.3.172
11:25:16,554 INFO [RARDeployment] Started jboss.jca:service=ManagedConnectionFa
ctory,name=OracleDS_192.168.3.35
11:25:16,554 INFO [JBossManagedConnectionPool] Started jboss.jca:service=Manage
dConnectionPool,name=OracleDS_192.168.3.35
11:25:16,564 INFO [35] Bound connection factory for resource adapter for Connec
tionManager 'jboss.jca:service=LocalTxCM,name=OracleDS_192.168.3.35 to JNDI name
'java:/OracleDS_192.168.3.35'
11:25:16,564 INFO [TxConnectionManager] Started jboss.jca:service=LocalTxCM,nam
e=OracleDS_192.168.3.35
11:25:16,574 INFO [RARDeployment] Started jboss.jca:service=ManagedConnectionFa
ctory,name=OracleDS
11:25:16,574 INFO [JBossManagedConnectionPool] Started jboss.jca:service=Manage
dConnectionPool,name=OracleDS
11:25:16,574 INFO [OracleDS] Bound connection factory for resource adapter for
ConnectionManager 'jboss.jca:service=LocalTxCM,name=OracleDS to JNDI name 'java:
/OracleDS'
11:25:16,574 INFO [TxConnectionManager] Started jboss.jca:service=LocalTxCM,nam
e=OracleDS
11:25:16,594 INFO [HibernateServiceMBean] starting service at JNDI name: java:/
hibernate/HibernateFactory
11:25:16,594 INFO [HibernateServiceMBean] service properties: {hibernate.sessio
n_factory_name=java:/hibernate/HibernateFactory, hibernate.transaction.manager_l
ookup_class=net.sf.hibernate.transaction.JBossTransactionManagerLookup, hibernat
e.dialect=net.sf.hibernate.dialect.OracleDialect, hibernate.show_sql=false, hibe
rnate.use_outer_join=false, hibernate.transaction.factory_class=net.sf.hibernate
.transaction.JTATransactionFactory, hibernate.connection.datasource=java:/Oracle
DS, jta.UserTransaction=UserTransaction}
11:25:16,594 INFO [Configuration] Mapping resource: com/SFHC/RepairSFHC/DB/SFHC
NO.hbm.xml
11:25:17,025 INFO [Binder] Mapping class: com.SFHC.RepairSFHC.DB.SFHCNO -> RKXX
_XH
11:25:17,025 INFO [Configuration] Mapping resource: com/SFHC/RepairSFHC/DB/SFHC
Photo.hbm.xml
11:25:17,105 INFO [Binder] Mapping class: com.SFHC.RepairSFHC.DB.SFHCPhoto -> R
KTX
11:25:17,105 INFO [Configuration] Mapping resource: com/SFHC/RepairSFHC/DB/SFHC
Text.hbm.xml
11:25:17,225 INFO [Binder] Mapping class: com.SFHC.RepairSFHC.DB.SFHCText -> RK
XX
11:25:17,235 INFO [Configuration] Mapping resource: com/SFHC/RepairSFHC/DB/SFHC
TextHistory.hbm.xml
11:25:17,315 INFO [Binder] Mapping class: com.SFHC.RepairSFHC.DB.SFHCTextHistor
y -> RKXX_History
11:25:17,345 INFO [Configuration] Mapping resource: com/SFHC/RepairSFHC/DB/SFHC
TextLog.hbm.xml
11:25:17,425 INFO [Binder] Mapping class: com.SFHC.RepairSFHC.DB.SFHCTextLog ->
SFHC_SJWH_LOG
11:25:17,425 INFO [Configuration] processing one-to-many association mappings
11:25:17,425 INFO [Binder] Mapping collection: com.SFHC.RepairSFHC.DB.SFHCText.
objTextHistory -> RKXX_History
11:25:17,425 INFO [Configuration] processing one-to-one association property re
ferences
11:25:17,425 INFO [Configuration] processing foreign key constraints
11:25:17,425 INFO [Dialect] Using dialect: net.sf.hibernate.dialect.OracleDiale
ct
11:25:17,435 INFO [SettingsFactory] Use outer join fetching: false
11:25:17,435 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:17,435 INFO [DatasourceConnectionProvider] Using datasource: java:/Oracle
DS
11:25:17,435 INFO [TransactionFactoryFactory] Transaction strategy: net.sf.hibe
rnate.transaction.JTATransactionFactory
11:25:17,435 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:17,435 INFO [TransactionManagerLookupFactory] instantiating TransactionMa
nagerLookup: net.sf.hibernate.transaction.JBossTransactionManagerLookup
11:25:17,435 INFO [TransactionManagerLookupFactory] instantiated TransactionMan
agerLookup
11:25:17,435 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:17,435 INFO [TransactionManagerLookupFactory] instantiating TransactionMa
nagerLookup: net.sf.hibernate.transaction.JBossTransactionManagerLookup
11:25:17,435 INFO [TransactionManagerLookupFactory] instantiated TransactionMan
agerLookup
11:25:18,577 INFO [SettingsFactory] Use scrollable result sets: true
11:25:18,577 INFO [SettingsFactory] Use JDBC3 getGeneratedKeys(): false
11:25:18,577 INFO [SettingsFactory] Optimize cache for minimal puts: false
11:25:18,577 INFO [SettingsFactory] Query language substitutions: {}
11:25:18,577 INFO [SettingsFactory] cache provider: net.sf.ehcache.hibernate.Pr
ovider
11:25:18,577 INFO [Configuration] instantiating and configuring caches
11:25:18,577 INFO [SessionFactoryImpl] building session factory
11:25:18,727 INFO [SessionFactoryObjectFactory] Factory name: java:/hibernate/H
ibernateFactory
11:25:18,727 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:18,727 INFO [SessionFactoryObjectFactory] Bound factory to JNDI name: jav
a:/hibernate/HibernateFactory
11:25:18,727 WARN [SessionFactoryObjectFactory] InitialContext did not implemen
t EventContext
11:25:18,727 INFO [NamingHelper] JNDI InitialContext properties:{}
11:25:18,747 INFO [MainDeployer] Deployed package: file:/D:/Odin/ElsaJava/hiber
nate/server/jboss-3.2.3/server/default/deploy/oracle-ds.xml
this page happened when i press the F5 button for a minute,refresh the page in a endless way.Code:
11:26:41,316 ERROR [BatcherImpl] Exception executing batch:
java.lang.ArrayIndexOutOfBoundsException: 1
at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.
java:57)
at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:122)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2410)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2360)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2229)
at net.sf.hibernate.transaction.JTATransaction.commit(JTATransaction.jav
a:52)
at org.apache.jsp.hibernate_jsp._jspService(hibernate_jsp.java:74)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:2
95)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecur
ityMgrRealm.java:220)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(Contai
nerStatsValve.java:76)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:65)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
t.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:19
7)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:677)
at java.lang.Thread.run(Thread.java:534)
11:27:09,556 WARN [SessionImpl] afterTransactionCompletion() was never called
11:27:09,566 WARN [SessionImpl] unclosed connection
11:27:09,566 WARN [SessionImpl] afterTransactionCompletion() was never called
11:27:09,566 WARN [SessionImpl] unclosed connection
11:27:09,566 WARN [SessionImpl] afterTransactionCompletion() was never called
the follow error info is tell on jsp page:
error1(the info from try{} catch{}):
net.sf.hibernate.HibernateException: Session is closed
when i refresh the page of hibernate again,the page runs ok again!i notice the two error info:
one:
11:26:41,316 ERROR [BatcherImpl] Exception executing batch:
java.lang.ArrayIndexOutOfBoundsException: 1
at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.
java:57)
two:
11:27:09,556 WARN [SessionImpl] afterTransactionCompletion() was never called
11:27:09,566 WARN [SessionImpl] unclosed connection
i also use the loadrunner7.6 to test the two JSP page above,the result is same to the way that i press the F5 button for a minute.the test result of hibernate tell many trancation fail and many trancation error in loadrunner7.6.
does it a big problem to the hibernate?if you do the same test,i think you will get the same result!!!!