Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Lancelot Six
Clustering and quartz
February 18, 2010 6:29 AM
Answer

Lancelot Six

Rank: New Member

Posts: 12

Join Date: June 16, 2009

Recent Posts

Hi,

I'm using Liferay in a clustered environement, and I'm getting the following error from quarts:

 114:20:26,243 ERROR [JobStoreTX:3794] MisfireHandler: Error handling misfires: Couldn't retrieve trigger: Champ '' inconnu dans field list
 2org.quartz.JobPersistenceException: Couldn't retrieve trigger: Champ '' inconnu dans field list [See nested exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Champ '' inconnu dans field list]
 3        at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1508)
 4        at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:891)
 5        at org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3029)
 6        at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3789)
 7        at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3809)
 8Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Champ '' inconnu dans field list
 9        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
10        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
11        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
12        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
13        at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
14        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
15        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1448)
16        at com.mysql.jdbc.BlobFromLocator.length(BlobFromLocator.java:332)
17        at com.mysql.jdbc.BlobFromLocator$LocatorInputStream.<init>(BlobFromLocator.java:574)
18        at com.mysql.jdbc.BlobFromLocator.getBinaryStream(BlobFromLocator.java:178)
19        at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getJobDetailFromBlob(StdJDBCDelegate.java:3556)
20        at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getMapFromProperties(StdJDBCDelegate.java:928)
21        at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:2130)
22        at com.liferay.portal.scheduler.quartz.DynamicDriverDelegate.selectTrigger(DynamicDriverDelegate.java:474)
23        at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1490)
24        ... 4 more


Here is an extract of my porta-ext.properties:

 1liferay.home=/home/liferay
 2
 3jdbc.default.driverClassName=com.mysql.jdbc.Driver
 4jdbc.default.url=jdbc:mysql://--------/lportal?useUnicode=true&ch........
 5jdbc.default.username=---------
 6jdbc.default.password=---------
 7
 8## Document library configuration
 9dl.hook.file.system.root.dir=/JR/data/document_library
10dl.hook.impl=com.liferay.documentlibrary.util.AdvancedFileSystemHook
11
12## Cache configuration                                                          
13ehcache.single.vm.config.location=/ehcache/liferay-single-vm.xml
14ehcache.multi.vm.config.location=/ehcache/liferay-multi-vm-clustered.xml
15
16hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
17net.sf.ehcache.configurationResourceName=/ehcache/hibernate-clustered.xml
18
19
20## Lucene indexer configuration
21lucene.store.type=file
22
23#                                                                                                                                                                                    
24# Set the directory where Lucene indexes are stored. This is only referenced
25# if Lucene stores indexes in the file system.
26# -- Ne pas utiliser car utilisation du jdbc
27lucene.dir=/JR/data/lucene/
28
29index.on.startup=false
30
31#web.server.display.node=true
32org.quartz.jobStore.isClustered=true
33
34
35company.security.auth.type=screenName
36
37#
38#import des utilisaterus du ldap
39#
40ldap.base.provider.url=---------
41ldap.base.dn=----------
42ldap.security.principal=---------
43ldap.security.credentials=---------
44ldap.auth.enabled=true
45ldap.auth.required=true
46ldap.auth.method=bind
47ldap.user.mappings=---------
48ldap.group.mappings=---------
49ldap.import.enabled=true
50ldap.export.enabled=false
51ldap.import.on.startup=true
52ldap.import.interval=1440
53ldap.auth.search.filter=(ENTPersonLogin=@screen_name@)
54ldap.import.user.search.filter=(objectClass=ENTPerson)
55ldap.import.group.search.filter=(objectClass=groupOfNames)
56
57scheduler.classes=com.pentila.entSavoie.synchroLdap.ParentOrganizationSchuduler
58
59locale.default.request=false
60user.language=fr
61user.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?
Mika Koivisto
RE: Clustering and quartz
February 19, 2010 1:04 AM
Answer

Mika Koivisto

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1513

Join Date: August 7, 2006

Recent Posts

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.
Mayank Joshi
RE: Clustering and quartz
April 18, 2012 7:54 AM
Answer

Mayank Joshi

Rank: New Member

Posts: 5

Join Date: April 12, 2012

Recent Posts

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 emoticon

Please help me out as this is really making me go nuts now :'(

-MJ
Hitoshi Ozawa
RE: Clustering and quartz
April 27, 2012 8:58 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

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.