|
View:
New views
14 Messages
—
Rating Filter:
Alert me
|
|
|
Teman2, ada yang bisa bantu? (ibatis)Teman2 JUG, mohon pencerahannya.
Saya mendapatkan error, yang sampai sekarang saya tidak bisa resolve. Cuplikan dari error log adalah seperti ini: [20:10:48] CdmsMgr - getNextJob: java.sql.SQLException: Closed Connection java.sql.SQLException: Closed Connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1142) 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 com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) at $Proxy0.rollback(Unknown Source) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72) at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:105) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:782) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:154) * at com.XXXX.db.mgr.rpcif.CdmsMgr.getNextJob(CdmsMgr.java:136)* at com.XXXX.rpcif.cdms.mt.MTSendDemon.run(MTSendDemon.java:132) at java.lang.Thread.run(Thread.java:595) Intinya, saya selalu mendapatkan error java.sql.SQLException: Closed Connection. Setelah googling sekian lama, akhirnya saya mendapatkan kesimpulan bahwa error tersebut dikarenakan connection ke database terputus. Tapi yang membuat saya heran, kenapa hanya terjadi di method CdmsMgr.getNextJob(), sedangkan di tempat lain di aplikasi yang sama banyak melakukan akses ke database, dan tidak menimbulkan error. Jadi, sebenarnya apa yang menimbulkan error seperti di atas, dan bagaimana solusinya? Mungkin ada rekan2 di JUG yang pernah mengalami hal yang sama? Oh ya, databasenya adalah Oracle 10g, OS nya HP-UX, app servernya tomcat 5.5, dan java 1.5. code snipet CdmsMgr.getNextJob() , line 136 di code tersebut saya warnai merah. public ArrayList<MyQueue> getNextJob(String priority, String status, int size) { SqlMapClient sqlMap = mDb.getOracleMap(); ArrayList returnList = null; try { sqlMap.startTransaction(); MyQueuePa pa = new MyQueuePa(); pa.setPriority(priority); pa.setStatus(status); pa.setFromIndex(1); pa.setToIndex(size); returnList = (ArrayList) sqlMap.queryForList("rpcif.Cdms.getNextJob", pa) ; //ArrayList list = (ArrayList) sqlMap.queryForList("rpcif.Cdms.getNextJob", pa); for (Iterator<MyQueue> it = returnList.iterator(); it.hasNext();) { MyQueue q = it.next(); q.setStatus(MyQueue.SC_START); sqlMap.update("rpcif.Cdms.setJobMark", q); } sqlMap.commitTransaction(); } catch (SQLException e) { mLogger.error(e, e); } finally { try { sqlMap.endTransaction(); } catch (SQLException e) { mLogger.error(e, e); } } return returnList; } dan rpcif.Cdms.getNextJob <select id="getNextJob" parameterClass="com.*XXXX*.db.entity.rpcif.MyQueue" resultMap="MyQueue_re"> select sms_id, tid, sid, tariff_code, mdn, title, caid, ca_url, msg_time, mt_sc, dr_sc, priority, status, resend_yn from tsms_queue where priority =#priority# and status=#status# and rownum <![CDATA[<= ]]> #toIndex# order by sms_id <!--FOR UPDATE--> </select> Terima kasih sebelumnya.. |
|
|
Re: Teman2, ada yang bisa bantu? (ibatis)Maaf, salah cut-n-paste.
Error nya seperti ini..: java.sql.SQLException: Io exception: Socket closed at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:11\ 2) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:14\ 6) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:25\ 5) at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:577) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1\ 145) at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.j\ ava:629) at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.j\ ava:222) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTrans\ action.java:48) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(\ JdbcTransaction.java:89) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery\ ForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMap\ ExecutorDelegate.java:615) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMap\ ExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessi\ onImpl.java:118) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClient\ Impl.java:95) at com.indosat.db.mgr.rpcif.CdmsMgr.getNextJob(CdmsMgr.java:136) at com.indosat.rpcif.cdms.mt.MTSendDemon.run(MTSendDemon.java:132) at java.lang.Thread.run(Thread.java:595) --- In jug-indonesia@..., Ogi <ogi.prayogo@...> wrote: > > Teman2 JUG, mohon pencerahannya. |
|
|
Re: Teman2, ada yang bisa bantu? (ibatis)Ogi wrote:
> > Teman2 JUG, mohon pencerahannya. > > Saya mendapatkan error, yang sampai sekarang saya tidak bisa resolve. > Cuplikan dari error log adalah seperti ini: > > [20:10:48] CdmsMgr - getNextJob: java.sql.SQLException: Closed Connection > java.sql.SQLException: Closed Connection > at > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) > at > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) > at > oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) > at > oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1142) > 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 > com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) > at $Proxy0.rollback(Unknown Source) > at > com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72) > at > com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:105) > at > com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:782) > at > com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) > at > com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:154) > * at com.XXXX.db.mgr.rpcif.CdmsMgr.getNextJob(CdmsMgr.java:136)* > at com.XXXX.rpcif.cdms.mt.MTSendDemon.run(MTSendDemon.java:132) > at java.lang.Thread.run(Thread.java:595) > > Intinya, saya selalu mendapatkan error java.sql.SQLException: Closed > Connection. Setelah googling sekian lama, akhirnya saya mendapatkan > kesimpulan bahwa error tersebut dikarenakan connection ke database > terputus. Tapi yang membuat saya heran, kenapa hanya terjadi di method > CdmsMgr.getNextJob(), sedangkan di tempat lain di aplikasi yang sama > banyak melakukan akses ke database, dan tidak menimbulkan error. Jadi, > sebenarnya apa yang menimbulkan error seperti di atas, dan bagaimana > solusinya? > > Mungkin ada rekan2 di JUG yang pernah mengalami hal yang sama? Oh ya, > databasenya adalah Oracle 10g, OS nya HP-UX, app servernya tomcat 5.5, > dan java 1.5. > > code snipet CdmsMgr.getNextJob() , line 136 di code tersebut saya warnai > merah. > > public ArrayList<MyQueue> getNextJob(String priority, String status, int > size) { > SqlMapClient sqlMap = mDb.getOracleMap(); > ArrayList returnList = null; > try { > sqlMap.startTransaction(); > > MyQueuePa pa = new MyQueuePa(); > pa.setPriority(priority); > pa.setStatus(status); > pa.setFromIndex(1); > pa.setToIndex(size); > returnList = (ArrayList) > sqlMap.queryForList("rpcif.Cdms.getNextJob", pa) ; > //ArrayList list = (ArrayList) > sqlMap.queryForList("rpcif.Cdms.getNextJob", pa); > for (Iterator<MyQueue> it = returnList.iterator(); > it.hasNext();) { > MyQueue q = it.next(); > q.setStatus(MyQueue.SC_START); > sqlMap.update("rpcif.Cdms.setJobMark", q); > } > > sqlMap.commitTransaction(); > > } > catch (SQLException e) { > mLogger.error(e, e); > > } > finally { > try { > sqlMap.endTransaction(); > } catch (SQLException e) { > mLogger.error(e, e); > } > } > return returnList; > } > > dan rpcif.Cdms.getNextJob > > <select id="getNextJob" > parameterClass="com.*XXXX*.db.entity.rpcif.MyQueue" resultMap="MyQueue_re"> > select sms_id, tid, sid, tariff_code, mdn, title, caid, ca_url, > msg_time, mt_sc, dr_sc, priority, > status, resend_yn > from tsms_queue > where priority =#priority# and status=#status# > and rownum <![CDATA[<= ]]> #toIndex# order by sms_id > <!--FOR UPDATE--> > </select> > Ini sekedar dugaan saja ya karena saya tidak pakai Oracle. Tapi kalau dilihat dari errornya koneksi ditutup karena terjadi rollback. Anda melakukan select for update lalu melakukan update. Mungkinkah loop melakukan update anda itu cukup lama sehingga pada saat yang bersamaan ada user yang mengupdate juga? Karena ada update bersamaan maka terjadi deadlock lalu program anda yang dipilih oleh database untuk di tutup koneksinya untuk menghentikan deadlock? Lalu solusinya bagaimana? Anda jangan melakukan select for update pada banyak record melainkan cuma pada 1 record saja. Ini akan mengurangi kemungkinan deadlock. |
|
|
|
|
|
Re: Teman2, ada yang bisa bantu? (ibatis)Pak Samuel, terima kasih responsnya.
Dugaan pak Samuel sama dengan dugaan awal saya. select sms_id, tid, sid, tariff_code, mdn, title, caid, ca_url, msg_time, mt_sc, dr_sc, priority, status, resend_yn from tsms_queue where priority =#priority# and status=#status# and rownum <![CDATA[<= ]]> #toIndex# order by sms_id <!--FOR UPDATE--> statement "FOR UPDATE" nya saya comment, saat ini aplikasi berjalan dengan error yang sama berkurang. Masih terjadi, tapi jauuh berkurang. Tapi error tersebut masih terjadi. Query ini memang di-execute sering sekali dalam 1 detik, karena terus menerus mengecek queue. Mungkin ada baiknya juga apabila saya tambahkan waktu "sleep"nya dalam thread.. -- <a href=http://www.facebook.com/people/Ogi_Prayogo/655386333>Facebook me!</a> |
|
|
hellow!do you sp[eak english?
|
|
|
Re: hellow!welcome aboard sir !
as far as you need. :- ) ----- Original Message ----- From: Rodel Andawey To: jug-indonesia@... Sent: Friday, July 25, 2008 11:43 AM Subject: [JUG-Indonesia] hellow! do you sp[eak english? |
|
|
RE: hellow!Where're you from? Btw
Of course ppl here almost all speak English :D -- Please plug in to add some intelligence. http://i32.photobucket.com/albums/d40/bowozer/intelplug.gif Thank you:-). ________________________________ From: jug-indonesia@... [mailto:jug-indonesia@...] On Behalf Of Rodel Andawey Sent: 25 Juli 2008 12:43 To: jug-indonesia@... Subject: [JUG-Indonesia] hellow! do you sp[eak english? |
|
|
RE: hellow!Welcome to Java user Group Indonesia, Rodel.
Our primary language is bahasa Indonesia, but you can post your question in english and get the answer in english too;) From: jug-indonesia@... [mailto:jug-indonesia@...] On Behalf Of Rodel Andawey Sent: Friday, July 25, 2008 11:43 AM To: jug-indonesia@... Subject: [JUG-Indonesia] hellow! do you sp[eak english? |
|
|
Re: hellow!--- In jug-indonesia@..., "Necromancer" <masmarga@...> wrote:
> > Welcome to Java user Group Indonesia, Rodel. > > Our primary language is bahasa Indonesia, but you can post your question in > english and get the answer in english too;) > > > > From: jug-indonesia@... [mailto:jug-indonesia@...] > On Behalf Of Rodel Andawey > Sent: Friday, July 25, 2008 11:43 AM > To: jug-indonesia@... > Subject: [JUG-Indonesia] hellow! > > > > would you help me to learn the concept of programming? and can you guys give me a favor? > do you sp[eak english? > |
|
|
Re: hellow!--- In jug-indonesia@..., "Ardhio Wibowo Sutjipto"
<Ardhio.Sutjipto@...> wrote: > > Where're you from? Btw > > > > Of course ppl here almost all speak English :D > > > > -- > > Please plug in to add some intelligence. > > http://i32.photobucket.com/albums/d40/bowozer/intelplug.gif > > Thank you:-). > > > helow! i'm from Phillipines... would it be fine if i will be joining > ________________________________ > > From: jug-indonesia@... > [mailto:jug-indonesia@...] On Behalf Of Rodel Andawey > Sent: 25 Juli 2008 12:43 > To: jug-indonesia@... > Subject: [JUG-Indonesia] hellow! > > > > do you sp[eak english? > |
|
|
Re: Re: hellow!You're welcome.
If you want to learn about algorithm , you better get article from MIT OpenCourse. If you need something flavor about wise of veteran coders, you may read "Hacker's Delight" and Art of Programming. Am I answer your question? On Sat, Jul 26, 2008 at 11:35 AM, rhod087 <rhod087@...> wrote: >> would you help me to learn the concept of programming? and can you > guys give me a favor? >> do you sp[eak english? >> > > -- ---- [Indonesia] sebuah bangsa kuli dan jadi kuli bangsa-bangsa lain eine Nation von koeli und koeli unter den Nationen (Helfferich) |
|
|
Re: hellow!when you are asking about concept programming, i think there are a lot
of programming concepts, you should have heard about OOP (Object Oriented Programming), and it is also a concept, and its too wide to describe, and as standard manner you can get from google or wiki if you're new with a word or statement, here is the link in wiki about OOP: http://en.wikipedia.org/wiki/Object_oriented and it's good choice for you to join java mailing list, because java is made for OOP concept. and the last thing is it will be better for us to try build applications using java rather than reading books or other theories, and asking each other when we find an error in our applications, coz there are plenty of technologies/some other stuff that we cannot mastered all of them. --- In jug-indonesia@..., "rhod087" <rhod087@...> wrote: > > --- In jug-indonesia@..., "Necromancer" <masmarga@> wrote: > > > > Welcome to Java user Group Indonesia, Rodel. > > > > Our primary language is bahasa Indonesia, but you can post your > question in > > english and get the answer in english too;) > > > > > > > > From: jug-indonesia@... > [mailto:jug-indonesia@...] > > On Behalf Of Rodel Andawey > > Sent: Friday, July 25, 2008 11:43 AM > > To: jug-indonesia@... > > Subject: [JUG-Indonesia] hellow! > > > > > > > > would you help me to learn the concept of programming? and can you > guys give me a favor? > > do you sp[eak english? > > > |
|
|
Re: hellow!welcome...... in jug INDONESIA. kopi Hangat for you....
|
| Free Forum Powered by Nabble | Forum Help |