2014-06-07 44 views
3

我們的hybris實現中有一個相當主要的問題,缺少數據庫實例。我們一直在收到「未找到實體」的錯誤。它在上個星期一相當隨機地開始。導致錯誤的記錄位於數據庫中,我們可以使用flexi-search來查找它們,但是其中許多記錄會連續丟出4或5個錯誤。我們使用和更新運行系統進行構建,但沒有解決問題。大部分錯誤都是由btgresults和cartentries引發的。 我們無法在分段或開發系統中重新創建問題。 這裏是錯誤的在日誌中例如:Hybris實體未發現異常

6:41:35.587 PM 
INFO | jvm 1 | main | 2014/06/07 22:41:35.587 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8847902804326 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 
    6/7/14 
6:41:06.253 PM 
INFO | jvm 1 | main | 2014/06/07 22:41:06.253 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8847902411110 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 
    6/7/14 
6:41:06.051 PM 
INFO | jvm 1 | main | 2014/06/07 22:41:06.051 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8847902345574 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 
    6/7/14 
6:40:50.233 PM 
INFO | jvm 1 | main | 2014/06/07 22:40:50.233 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8832652476459 name = 'de.hybris.platform.persistence.core_Cart' type code = '43' db table = 'carts') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 
    6/7/14 
6:40:50.032 PM 
INFO | jvm 1 | main | 2014/06/07 22:40:50.032 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8832652443691 name = 'de.hybris.platform.persistence.core_Cart' type code = '43' db table = 'carts') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 
    6/7/14 
6:40:49.930 PM 
INFO | jvm 1 | main | 2014/06/07 22:40:49.930 | [mde.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8832652410923 name = 'de.hybris.platform.persistence.core_Cart' type code = '43' db table = 'carts') 
host = sop-p-ma-app-002 
source = /opt/hybris/log/tomcat/console-20140607.log 
sourcetype = java_console 

並從錯誤的堆棧跟蹤:

HTTP Status 500 - Entity not found (pk = 8847703804262 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
type Exception report 
message Entity not found (pk = 8847703804262 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
description The server encountered an internal error that prevented it from fulfilling this request. 
exception 
de.hybris.platform.util.jeeapi.YNoSuchEntityException: Entity not found (pk = 8847703804262 name = 'de.hybris.platform.persistence.btg_BTGAbstractResult' type code = '2406' db table = 'btgresult') 
de.hybris.platform.persistence.GenericBMPBean.loadData(GenericBMPBean.java:259) 
de.hybris.platform.persistence.GenericBMPBean.ejbLoad(GenericBMPBean.java:148) 
de.hybris.platform.persistence.framework.RemoteInvocationHandler.performOther(RemoteInvocationHandler.java:187) 
de.hybris.platform.persistence.framework.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:107) 
com.sun.proxy.$Proxy45.getModifiedTime(Unknown Source) 
de.hybris.platform.persistence.ItemEJBImpl.getModificationTime(ItemEJBImpl.java:142) 
de.hybris.platform.jalo.Item.getModificationTimeFromPersistenceLayer(Item.java:1516) 
de.hybris.platform.jalo.Item.getLocalItemCache(Item.java:1387) 
de.hybris.platform.jalo.Item.getGetterSetterCache(Item.java:1397) 
de.hybris.platform.jalo.Item.access$1(Item.java:1395) 
de.hybris.platform.jalo.Item$CacheableItemLogic.getCacheMap(Item.java:542) 
de.hybris.platform.jalo.Item$CachedGetter.get(Item.java:668) 
de.hybris.platform.jalo.Item$CachedGetter.get(Item.java:655) 
de.hybris.platform.jalo.Item.getPersistenceVersion(Item.java:1534) 
de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.save(ItemModelConverter.java:630) 
de.hybris.platform.servicelayer.internal.model.impl.ModelWrapper.save(ModelWrapper.java:149) 
de.hybris.platform.servicelayer.internal.model.impl.ResolvingModelPersister.saveNewOnes(ResolvingModelPersister.java:127) 
de.hybris.platform.servicelayer.internal.model.impl.ResolvingModelPersister.persist(ResolvingModelPersister.java:95) 
de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:1103) 
de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:1090) 
de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.save(DefaultModelService.java:735) 
de.hybris.platform.btg.dao.impl.DefaultBTGDao.createConditionResult(DefaultBTGDao.java:318) 
de.hybris.platform.btg.dao.impl.ResultCachingBTGDaoDecorator.createConditionResult(ResultCachingBTGDaoDecorator.java:241) 
de.hybris.platform.btg.condition.impl.DefaultBTGExpressionEvaluator.setConditionResultAfterEvaluation(DefaultBTGExpressionEvaluator.java:222) 
de.hybris.platform.btg.condition.impl.DefaultBTGExpressionEvaluator.evaluate(DefaultBTGExpressionEvaluator.java:142) 
de.hybris.platform.btg.condition.impl.DefaultBTGExpressionEvaluator.evaluate(DefaultBTGExpressionEvaluator.java:1) 
de.hybris.platform.btg.rule.impl.DefaultRuleEvaluator.evaluate(DefaultRuleEvaluator.java:109) 
de.hybris.platform.btg.segment.impl.DefaultSegmentEvaluator.evaluate(DefaultSegmentEvaluator.java:124) 
de.hybris.platform.btg.services.impl.DefaultBTGEvaluationService.evaluateSegment(DefaultBTGEvaluationService.java:105) 
de.hybris.platform.btg.services.impl.DefaultBTGEvaluationService.evaluateAllSegments(DefaultBTGEvaluationService.java:80) 
de.hybris.platform.btg.services.impl.DefaultBTGEvaluationService.evaluateAllSegments(DefaultBTGEvaluationService.java:62) 
de.hybris.platform.btg.services.impl.DefaultBTGEvaluationService.evaluateAllSegments(DefaultBTGEvaluationService.java:55) 
com.so.storefront.filters.btg.support.impl.DefaultBTGSegmentStrategy.evaluateSegment(DefaultBTGSegmentStrategy.java:98) 
com.so.storefront.filters.btg.BTGSegmentFilter.doFilterInternal(BTGSegmentFilter.java:48) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.btg.AbstractBtgFilter.doFilterInternal(AbstractBtgFilter.java:57) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.btg.AbstractBtgFilter.doFilterInternal(AbstractBtgFilter.java:57) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.btg.AbstractBtgFilter.doFilterInternal(AbstractBtgFilter.java:57) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.btg.AbstractBtgFilter.doFilterInternal(AbstractBtgFilter.java:57) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.CrossScriptingFilter.doFilterInternal(CrossScriptingFilter.java:36) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.SpecialAccountsFilter.doFilterInternal(SpecialAccountsFilter.java:470) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.CustomerLocationRestorationFilter.doFilterInternal(CustomerLocationRestorationFilter.java:63) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.CartRestorationFilter.doFilterInternal(CartRestorationFilter.java:133) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.AnonymousCheckoutFilter.doFilterInternal(AnonymousCheckoutFilter.java:62) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) 
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:139) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.UrlEncoderFilter.doFilterInternal(UrlEncoderFilter.java:100) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.StorefrontFilter.doFilterInternal(StorefrontFilter.java:73) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.cms.CMSSiteFilter.doFilterInternal(CMSSiteFilter.java:108) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.RequestLoggerFilter.doFilterInternal(RequestLoggerFilter.java:79) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
com.so.storefront.filters.AcceleratorAddOnFilter.doFilter(AcceleratorAddOnFilter.java:92) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.SessionFilter.doFilter(SessionFilter.java:73) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain.doFilterInternal(AbstractPlatformFilterChain.java:156) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
com.so.storefront.filters.UrlPathFilter.doFilterInternal(UrlPathFilter.java:85) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:256) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$StatisticsGatewayFilter.doFilter(AbstractPlatformFilterChain.java:345) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.RedirectWhenSystemIsNotInitializedFilter.doFilter(RedirectWhenSystemIsNotInitializedFilter.java:104) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.TenantActivationFilter.doFilter(TenantActivationFilter.java:91) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.Log4JFilter.doFilter(Log4JFilter.java:47) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:226) 
de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain.doFilterInternal(AbstractPlatformFilterChain.java:156) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
com.so.storefront.filters.AcceleratorAddOnFilter.doFilter(AcceleratorAddOnFilter.java:92) 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs. 

更新:只是一些新的信息,這些錯誤似乎總是出現權因爲該記錄正在創建。是否有可能在我們的數據庫中存在一些延遲,並且記錄已成功創建,但不會返回給應用程序?

此外,錯誤總是出現在de.hybris.platform.persistence.GenericBMPBean.loadData(GenericBMPBean.java:259)不知道如果這是完整的錯誤開始的地方,如果堆棧中的其他東西調用這個錯誤GenericBMPBean的文檔非常清晰。 「找不到實體」表示給定的pk沒有項目。假設根據DB這個記錄不存在,我錯了嗎?無論是因爲延遲還是數據庫錯誤。

該記錄確實存在,事實上是在引發該錯誤的同一堆棧跟蹤中創建的。

+0

您是否在HAC中檢查了您的靈活搜索查詢? –

+0

是的,當使用可修復搜索時,這些項目可以通過它們的PK找到,並且數據似乎沒有任何問題。 – Ryan

回答

3

原來此無關的代碼或配置。這是一個數據庫錯誤。雖然我們的託管服務合作伙伴在其診斷中看不到任何錯誤,但重新啓動數據庫可解決此問題。

1

請嘗試使用您的hybris HAC清除所有孤立的類型>維護>清理>

+0

HAC表示沒有孤立類型 – Ryan

0

你的問題是,你正在使用BTG。不要那麼做。

但是你在那裏看到的問題是過時區域緩存的結果。清除緩存或重新啓動。

+0

我們確實停止了導致btw錯誤的BTG規則,但即使BTG被禁用,服務器重新啓動並且正在運行系統更新,我們仍然看到與購物車和小卡車相同的錯誤。即使在那之後,我們的高速緩存是否有可能被清除? – Ryan

1

您可能還需要更新您的系統:HAC>平臺>更新