掲示板
Clustering and quartz
Hi,
I'm using Liferay in a clustered environement, and I'm getting the following error from quarts:
Here is an extract of my porta-ext.properties:
I tried to set the hibernate.show_sql property to true to see the sql statement going on, but as it's using directly jsbc, I can see nothing.
Do any one have an idea of what is going on?
I'm using Liferay in a clustered environement, and I'm getting the following error from quarts:
14:20:26,243 ERROR [JobStoreTX:3794] MisfireHandler: Error handling misfires: Couldn't retrieve trigger: Champ '' inconnu dans field list
org.quartz.JobPersistenceException: Couldn't retrieve trigger: Champ '' inconnu dans field list [See nested exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Champ '' inconnu dans field list]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Champ '' inconnu dans field list
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1448)
at com.mysql.jdbc.BlobFromLocator.length(BlobFromLocator.java:332)
at com.mysql.jdbc.BlobFromLocator$LocatorInputStream.<init>(BlobFromLocator.java:574)
at com.mysql.jdbc.BlobFromLocator.getBinaryStream(BlobFromLocator.java:178)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getJobDetailFromBlob(StdJDBCDelegate.java:3556)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getMapFromProperties(StdJDBCDelegate.java:928)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2130)
at com.liferay.portal.scheduler.quartz.DynamicDriverDelegate.selectTrigger(DynamicDriverDelegate.java:474)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
... 4 more</init>
Here is an extract of my porta-ext.properties:
liferay.home=/home/liferay
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://--------/lportal?useUnicode=true&ch........
jdbc.default.username=---------
jdbc.default.password=---------
## Document library configuration
dl.hook.file.system.root.dir=/JR/data/document_library
dl.hook.impl=com.liferay.documentlibrary.util.AdvancedFileSystemHook
## Cache configuration
ehcache.single.vm.config.location=/ehcache/liferay-single-vm.xml
ehcache.multi.vm.config.location=/ehcache/liferay-multi-vm-clustered.xml
hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
net.sf.ehcache.configurationResourceName=/ehcache/hibernate-clustered.xml
## Lucene indexer configuration
lucene.store.type=file
#
# Set the directory where Lucene indexes are stored. This is only referenced
# if Lucene stores indexes in the file system.
# -- Ne pas utiliser car utilisation du jdbc
lucene.dir=/JR/data/lucene/
index.on.startup=false
#web.server.display.node=true
org.quartz.jobStore.isClustered=true
company.security.auth.type=screenName
#
#import des utilisaterus du ldap
#
ldap.base.provider.url=---------
ldap.base.dn=----------
ldap.security.principal=---------
ldap.security.credentials=---------
ldap.auth.enabled=true
ldap.auth.required=true
ldap.auth.method=bind
ldap.user.mappings=---------
ldap.group.mappings=---------
ldap.import.enabled=true
ldap.export.enabled=false
ldap.import.on.startup=true
ldap.import.interval=1440
ldap.auth.search.filter=(ENTPersonLogin=@screen_name@)
ldap.import.user.search.filter=(objectClass=ENTPerson)
ldap.import.group.search.filter=(objectClass=groupOfNames)
scheduler.classes=com.pentila.entSavoie.synchroLdap.ParentOrganizationSchuduler
locale.default.request=false
user.language=fr
user.country=FR
I tried to set the hibernate.show_sql property to true to see the sql statement going on, but as it's using directly jsbc, I can see nothing.
Do any one have an idea of what is going on?
14年前 に Mika Koivisto によって更新されました。
RE: Clustering and quartz
Liferay Legend 投稿: 1519 参加年月日: 06/08/07 最新の投稿
Did you have org.quartz.jobStore.isClustered=true in your portal-ext.properties when you started your Liferay for the first time? If you didn't you'll need to drop the quartz tables from the database and let it generate them again.
Sorry to be posting against this old thread but I'm stuck up with a similar problem. I'm using Liferay Enterprise 6.00 SP2 with tomcat. MSSQL Server 2008 is my database. Before enabling clustering everything was just about fine. However after setting cluster.link.enabled=true in portal-ext.properties I've been having nightmares with liferay. Following is error log
4:52:18,315 ERROR [PortalJobStore:3826] ClusterManager: Error managing cluster: Failure obtaining db row lock: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.
org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR. [See nested exception: java.sql.SQLException: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.]
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:109)
at org.quartz.impl.jdbcjobstore.DBSemaphore.obtainLock(DBSemaphore.java:112)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3196)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3820)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3856)
Caused by: java.sql.SQLException: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:776)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:89)
... 4 more
I googled a bit about the error and found many people suggesting adding following to portal-ext.properties:
org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
However even after addition of these lines my woes aren't ending
Please help me out as this is really making me go nuts now :'(
-MJ
4:52:18,315 ERROR [PortalJobStore:3826] ClusterManager: Error managing cluster: Failure obtaining db row lock: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.
org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR. [See nested exception: java.sql.SQLException: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.]
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:109)
at org.quartz.impl.jdbcjobstore.DBSemaphore.obtainLock(DBSemaphore.java:112)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3196)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3820)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3856)
Caused by: java.sql.SQLException: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:776)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:89)
... 4 more
I googled a bit about the error and found many people suggesting adding following to portal-ext.properties:
org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?
However even after addition of these lines my woes aren't ending
Please help me out as this is really making me go nuts now :'(
-MJ
11年前 に Hitoshi Ozawa によって更新されました。
RE: Clustering and quartz
Liferay Legend 投稿: 7942 参加年月日: 10/03/24 最新の投稿Sorry to be posting against this old thread
Yes, you won't have been sorry and people may have replied to you if you created a new thread instead of posting to an old thread.