 |
| Количество сообщений по данной теме: 6 |
v_kukhta
Гость
Зарегистрирован: 04.02.2010
Количество сообщений: 4
Статус: Offline
|
Здравствуйте!
Установил последнюю версию OpenCms 7.5.2 на сервере Tomcat 6.0.24 и СУБД DB2 9.5 Express.
Возникла следующая проблема: OpenCms нормально развернулась на сервере, правильно создала все таблицы, однако я не могу создавать никакие ресурсы (jsp, папки, html страницы и т.д.) - мастер просто пишет "No entries found", хотя там должен быть длинный список.
Посмотрел логи, там следующая ошибка:
Error reading groups of user Admin org.opencms.db.CmsDbSqlException: Error reading all roles for user "Admin" over resource "/".
Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -132, SQLSTATE: 42824, SQLERRMC: null
Оказалось, при использовании MS SQL и Postgresql с такой проблемой уже сталкивались, как описано здесь.
Ошибка возникает при генерации SQL запроса в OpenCms, который не может быть выполнен в СУБД, и для каждой СУБД необходимо менять конфигурационный файл query.properties, чтобы задать шаблоны запросов, а затем собирать OpenCms из исходников.
Не могли бы вы подсказать, что сделать в данном случае, чтобы успешно работать с DB2, т.к. в сети информации на эту тему нет. Работать с другой СУБД - не вариант, это требование проекта.
Хотелось бы ещё отметить, что ранняя версия OpenCms 7.0.3 работает с DB2 без всяких проблем. DB2 пробовал использовать разных версий - от 9.1 до 9.7 с одинаковым результатом.
Заранее спасибо!
|
|
[04.02.2010 23:42:43]
|
|
|
|
nikolay
Продвинутый пользователь
Зарегистрирован: 12.09.2003
Количество сообщений: 123
Статус: Offline
|
|
Re: Проблема с OpenCms 7.5.2 и DB2
|
Ответить |
Запостите пожалуйста полный stacktrace.
В целом, ошибка может быть не только в запросах, но и в драйвере JDBC (например в том, что использована неподходящая версия драйвера), или каких-либо настройках базы (с DB2 незнаком, поэтому более подробных предположений сделать не могу). Также, если в логах OpenCms нет полной информации об ошибке, ее можно попробовать найти в логах самой базы. Главное выяснить - вызвана ошибка неправильным синтаксисом SQL, направильным восприятием базой или JDBC-драйвером параметров, настройкой прав доступа, неверной инициализацией базы или чем-то еще. Тогда уже можно говорить о том, как эту проблемы решать.
|
|
[05.02.2010 14:22:31]
|
|
|
|
v_kukhta
Гость
Зарегистрирован: 04.02.2010
Количество сообщений: 4
Статус: Offline
|
|
Re: Проблема с OpenCms 7.5.2 и DB2
|
Ответить |
Спасибо большое за ответ!
Драйвер JDBC используется из дистрибутива OpenCms, который, исходя из документации, поддерживает любую версию DB2 9. Настройка прав доступа и инициализация базы сделаны правильно; база заполнена начальными данными.
Подробный stacktrace:
ERROR [explorer.CmsExplorerTypeAccess: 235] Error reading groups of user Admin org.opencms.db.CmsDbSqlException: Error reading all roles for user "Admin" over resource "/". at org.opencms.db.CmsDbSqlException.createException(CmsDbSqlException.java:117) at org.opencms.db.CmsDbContext.throwException(CmsDbContext.java:238) at org.opencms.db.CmsDbContext.report(CmsDbContext.java:212) at org.opencms.db.CmsSecurityManager.getRolesForResource(CmsSecurityManager.java:2255) at org.opencms.security.CmsRoleManager.getRolesForResource(CmsRoleManager.java:260) at org.opencms.workplace.explorer.CmsExplorerTypeAccess.getPermissions(CmsExplorerTypeAccess.java:232) at org.opencms.workplace.explorer.CmsExplorerTypeSettings.isEditable(CmsExplorerTypeSettings.java:460) at org.opencms.workplace.explorer.CmsNewResource.getListItems(CmsNewResource.java:982) at org.opencms.workplace.list.A_CmsListDialog.fillList(A_CmsListDialog.java:883) at org.opencms.workplace.list.A_CmsListDialog.refreshList(A_CmsListDialog.java:628) at org.opencms.workplace.list.A_CmsListDialog.actionDialog(A_CmsListDialog.java:364) at org.opencms.workplace.list.A_CmsListResourceTypeDialog.actionDialog(A_CmsListResourceTypeDialog.java:217) at org.opencms.workplace.explorer.CmsNewResource.actionDialog(CmsNewResource.java:416) at org.opencms.workplace.list.A_CmsListDialog.displayDialog(A_CmsListDialog.java:411) at org.opencms.workplace.list.A_CmsListDialog.displayDialog(A_CmsListDialog.java:396) at com.ibm._jsp._newresource._jspService(_newresource.java:144) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:87) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:990) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:225) at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.handleRequest(AbstractJSPExtensionProcessor.java:278) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:639) at org.opencms.flex.CmsFlexRequestDispatcher.includeExternal(CmsFlexRequestDispatcher.java:194) at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:169) at org.opencms.loader.CmsJspLoader.service(CmsJspLoader.java:555) at org.opencms.flex.CmsFlexRequestDispatcher.includeInternalWithCache(CmsFlexRequestDispatcher.java:423) at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:173) at org.opencms.loader.CmsJspLoader.dispatchJsp(CmsJspLoader.java:829) at org.opencms.loader.CmsJspLoader.load(CmsJspLoader.java:512) at org.opencms.loader.CmsResourceManager.loadResource(CmsResourceManager.java:1052) at org.opencms.main.OpenCmsCore.showResource(OpenCmsCore.java:1490) at org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:153) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:990) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:473) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3276) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811) at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469) Caused by: org.opencms.db.CmsDbSqlException: An SQL error occurred when executing the following query: com.ibm.db2.jcc.c.gg@fa20fa2. at org.opencms.db.generic.CmsVfsDriver.getResourceOus(CmsVfsDriver.java:3159) at org.opencms.db.generic.CmsVfsDriver.readRelations(CmsVfsDriver.java:1796) at org.opencms.db.CmsDriverManager.getResourceOrgUnits(CmsDriverManager.java:4127) at org.opencms.db.CmsDriverManager.getRolesForResource(CmsDriverManager.java:4227) at org.opencms.db.CmsSecurityManager.getRolesForResource(CmsSecurityManager.java:2253) ... 52 more Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -132, SQLSTATE: 42824, SQLERRMC: null at com.ibm.db2.jcc.c.fg.e(fg.java:1596) at com.ibm.db2.jcc.c.fg.a(fg.java:1206) at com.ibm.db2.jcc.b.gb.g(gb.java:140) at com.ibm.db2.jcc.b.gb.a(gb.java:39) at com.ibm.db2.jcc.b.w.a(w.java:34) at com.ibm.db2.jcc.b.vb.g(vb.java:139) at com.ibm.db2.jcc.c.fg.n(fg.java:1177) at com.ibm.db2.jcc.c.gg.eb(gg.java:1862) at com.ibm.db2.jcc.c.gg.d(gg.java:2295) at com.ibm.db2.jcc.c.gg.V(gg.java:424) at com.ibm.db2.jcc.c.gg.executeQuery(gg.java:407) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) at org.opencms.db.generic.CmsVfsDriver.getResourceOus(CmsVfsDriver.java:3144) ... 56 more
Поискал в сети расшифровку SQLSTATE 42824, оказалось, что такая ошибка возникает при обработке неправильно использованного оператора LIKE, как описано здесь.
Буду благодарен за любую информацию по этой проблеме.
|
|
[05.02.2010 22:43:03]
|
|
|
|
nikolay
Продвинутый пользователь
Зарегистрирован: 12.09.2003
Количество сообщений: 123
Статус: Offline
|
|
Re: Проблема с OpenCms 7.5.2 и DB2
|
Ответить |
В данном случае используется следующий запрос:
SELECT DISTINCT CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_SOURCE_ID, CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_SOURCE_PATH, CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_TARGET_ID, CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_TARGET_PATH, CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_TYPE FROM CMS_${PROJECT}_RESOURCE_RELATIONS WHERE CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_TYPE = ? AND ? LIKE CONCAT(CMS_${PROJECT}_RESOURCE_RELATIONS.RELATION_TARGET_PATH, '%')
причем для первого аргумента используется setInt, а для второго второго - setString.
Посмотрите, что в этом запросе не согласуется с DB2. Если проблему нельзя решить настройками DB2 (введение дополнительных операторов, например, либо каким-либо другим способом), можно, чтобы не вносить изменения в сам OpenCms, написать свой VfsDriver, со своим файлом query.properties, в котором переопределить проблемный скрипт.
Рекомендую также, когда станет понятна точная причина ошибки, засабмитить баг в багтрекер OpenCms:
http://www.opencms.org/en/development/bugtracker.html
|
|
[08.02.2010 12:36:49]
|
|
|
|
v_kukhta
Гость
Зарегистрирован: 04.02.2010
Количество сообщений: 4
Статус: Offline
|
|
Re: Проблема с OpenCms 7.5.2 и DB2
|
Ответить |
Спасибо большое за информацию!
Буду разбираться.
|
|
[08.02.2010 21:37:34]
|
|
|
|
v_kukhta
Гость
Зарегистрирован: 04.02.2010
Количество сообщений: 4
Статус: Offline
|
|
Re: Проблема с OpenCms 7.5.2 и DB2
|
Ответить |
Попробую ещё написать в mailing list'е OpenCms. Всё-таки система широко используется, возможно, что кто-либо сталкивался с этой ситуацией.
Если выясню что-то - отпишусь.
|
|
[08.02.2010 21:46:41]
|
|
|
|
|
 |