मैं एक निश्चित परिदृश्यटाइमआउट त्रुटि h2 में तालिका लॉक करने के लिए कोशिश कर रहा
जब एक अलग धागा बल्क अपलोड आपरेशन के माध्यम से उपयोगकर्ताओं का एक बहुत पॉप्युलेट है और मैं सभी उपयोगकर्ताओं की सूची देखने के लिए कोशिश कर रहा था के अंतर्गत निम्नलिखित त्रुटि मिलती है एक अलग वेब पेज पर। सूची क्वेरी, निम्नलिखित टाइमआउट त्रुटि फेंकता है। क्या इस टाइमआउट को सेट करने का कोई तरीका है ताकि मैं इस टाइमआउट त्रुटि से बच सकूं।
पर्यावरण: H2 (नवीनतम), 3.3.x
Caused by: org.h2.jdbc.JdbcSQLException: Timeout trying to lock table "USER"; SQL statement:
[50200-144]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
at org.h2.message.DbException.get(DbException.java:167)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.table.RegularTable.doLock(RegularTable.java:482)
at org.h2.table.RegularTable.lock(RegularTable.java:416)
at org.h2.table.TableFilter.lock(TableFilter.java:139)
at org.h2.command.dml.Select.queryWithoutCache(Select.java:571)
at org.h2.command.dml.Query.query(Query.java:257)
at org.h2.command.dml.Query.query(Query.java:227)
at org.h2.command.CommandContainer.query(CommandContainer.java:78)
at org.h2.command.Command.executeQuery(Command.java:132)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:278)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:137)
at java.lang.Thread.run(Thread.java:619)
at org.h2.engine.SessionRemote.done(SessionRemote.java:543)
at org.h2.command.CommandRemote.executeQuery(CommandRemote.java:152)
at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
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:2228)
... 125 more
मैं ड्राइवर यूआरएल पर समाप्ति सेट किया था, लेकिन मैं अभी भी एक ही त्रुटि मिलती है के बाद से ऊपर कार्य को पूरा करने शायद लगभग 30 सेकंड लेता है। मैं बस उन अन्य उपयोगकर्ताओं को नहीं चाहता जो इस पृष्ठ का उपयोग उस समय क्रैश देखने के लिए कर रहे हैं। क्या इसका मतलब है कि इस मुद्दे से बचने के लिए मुझे 30 सेकंड से अधिक समय पर टाइमआउट सेट करना होगा? यदि टाइमआउट बड़ी संख्या – user339108
पर सेट किया गया है तो मुझे प्रदर्शन विशिष्ट समस्याएं कैसे मिलेंगी क्या लेन-देन में वास्तव में 30 सेकंड लगते हैं? यह मेरे लिए थोड़ा लंबा लगता है। क्या लेनदेन को कई छोटे लेनदेन में विभाजित करना संभव है (उदाहरण के लिए 0.5 सेकंड प्रत्येक)? –
"MVCC = true" पैरामीटर का उपयोग समाधान है, टाइमआउट को बदलने से इस समस्या को ठीक नहीं किया जाता है। –