`
peterwanghao
  • 浏览: 124097 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Liferay中数据库异常的解决方法

 
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->

问题描述:

Liferay 的后台管理时增加应用不稳定,有时候增加不了。现象是增加应用后一直在转圈,应用无法展现。刷新后 portal 就不能使用了。

出现这种情况后重新启动服务后又可以增加应用了。但运行一段时间后又会出现上述问题。

观察日志可发现会抛出异常

03:02:56,625 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception

com.liferay.portal.kernel.dao.orm.ORMException: could not load an entity: [com.liferay.counter.model.Counter#com.liferay.portal.model.Resource]

at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:41)

at com.liferay.portal.dao.orm.hibernate.SessionImpl.get(SessionImpl.java:111)

at com.liferay.counter.service.persistence.CounterPersistence.createCounterRegister(CounterPersistence.java:275)

at com.liferay.counter.service.persistence.CounterPersistence.createCounterRegister(CounterPersistence.java:261)

at com.liferay.counter.service.persistence.CounterPersistence.getCounterRegister(CounterPersistence.java:252)

at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:116)

at com.liferay.counter.service.persistence.CounterPersistence.increment(CounterPersistence.java:106)

at com.liferay.counter.service.persistence.CounterUtil.increment(CounterUtil.java:46)

at com.liferay.counter.service.impl.CounterLocalServiceImpl.increment(CounterLocalServiceImpl.java:48)

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)

问题原因:

根据异常信息可发现是连接 portal 数据库出现异常,无法从数据库中装载内容。

经过分析,可能是数据库连接池的问题。原来使用的是 jboss 自带的数据库连接池有问题,替换为 c3p0 数据库连接池。

解决方法:

上传 c3p0.jar /server/default/lib 目录下。

上传 log4j.properties 文件到 /server/default/deploy/ROOT.war/WEB-INF/classes 目录下。

上传 c3p0-service.xml 文件到 /server/default/deploy 目录下。

这样的话 liferay 数据库的连接配置将在 c3p0-service.xml 文件中设置,数据库的连接池将使用 c3p0

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics