My Oracle Support Banner

OCSG Request Rate Does Not Work Properly In Geo-Redundancy Setup (Doc ID 1952217.1)

Last updated on JUNE 11, 2018

Applies to:

Oracle Communications Services Gatekeeper - Version 5.0.0 to 5.0.0 [Release 5.0]
Information in this document applies to any platform.

Symptoms

In a Geo-Redundancy environment, with 16 ATs/16 NTs in each site, following rate is set in SLA.

<serviceContract>
<startDate>2013-09-20</startDate>
<endDate>2999-12-31</endDate>
<scs>com.ocsg.plugin.TestPlugin</scs>

<contract>
<methodRestrictions>
<methodRestriction>
<methodName>getUserInfo</methodName>
<rate>
<reqLimit>80</reqLimit>
<timePeriod>1000</timePeriod>
</rate>
</methodRestriction>
</methodRestrictions>
<requestContext>

<contextAttribute>
<attributeName>AllowedOperation</attributeName>
<attributeValue>getOwnerOwnedSubscpnAndUserInfo</attributeValue>
</contextAttribute>

</requestContext>
</contract>
<enforceAcrossGeoSites>true</enforceAcrossGeoSites>
</serviceContract>


The rate is expected to be 80 per second, but it's observed, the allowed requests are doubled.

Following exception is observed in one NT logs:

WARN com.bea.wlcp.wlng.core.budget.BudgetService - Failed to check for configuration updates in master, attempting retry.
weblogic.rjvm.PeerGoneException: ; nested exception is:
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
at com.bea.wlcp.wlng.core.budget.BudgetEnforcementMasterProxyImpl_1033_WLStub.checkForConfigUpdate(Unknown Source)
at com.bea.wlcp.wlng.core.budget.BudgetEnforcementSlaveImpl.checkForConfigUpdate(BudgetEnforcementSlaveImpl.java:193)
at com.bea.wlcp.wlng.core.budget.BudgetConfigurationSynchronizationHelper.timerExpired(BudgetConfigurationSynchronizationHelper.java:47)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'
at weblogic.socket.BaseAbstractMuxableSocket.incrementBufferOffset(BaseAbstractMuxableSocket.java:174)
at weblogic.rjvm.t3.MuxableSocketT3.incrementBufferOffset(MuxableSocketT3.java:344)
at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:894)
at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:830)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:339)
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
... 2 more

Also, stuck threads are observed on some NTs:

[STUCK] ExecuteThread: '249' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00002aaab8cd6000 nid=0x6c15 waiting for monitor entry [0x00000000637b1000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.bea.wlcp.wlng.core.budget.BudgetEnforcementSlaveImpl$BudgetAllocationTracker.allocateBudget(BudgetEnforcementSlaveImpl.java:374)
- waiting to lock <0x000000077a865380> (a com.bea.wlcp.wlng.core.budget.BudgetEnforcementSlaveImpl$BudgetAllocationTracker)
at com.bea.wlcp.wlng.core.budget.BudgetEnforcementSlaveImpl.allocateBudget(BudgetEnforcementSlaveImpl.java:110)
at com.bea.wlcp.wlng.core.budget.BudgetServiceImpl.allocateBudget(BudgetServiceImpl.java:76)
at com.bea.wlcp.wlng.interceptor.EnforceSpAppBudget.safeAllocate(EnforceSpAppBudget.java:247)
at com.bea.wlcp.wlng.interceptor.EnforceSpAppBudget.checkSpAppRequestLimitsScs(EnforceSpAppBudget.java:179)
at com.bea.wlcp.wlng.interceptor.EnforceSpAppBudget.invoke(EnforceSpAppBudget.java:51)
at com.bea.wlcp.wlng.interceptor.ContextImpl.invokeNext(ContextImpl.java:87)
at com.bea.wlcp.wlng.interceptor.EnforceApplicationState.invoke(EnforceApplicationState.java:73)
at com.bea.wlcp.wlng.interceptor.ContextImpl.invokeNext(ContextImpl.java:87)
at com.bea.wlcp.wlng.interceptor.ValidateRequestUsingRequestFactory.invoke(ValidateRequestUsingRequestFactory.java:41)
at com.bea.wlcp.wlng.plugin.PluginManagerImpl.invokeInterceptors(PluginManagerImpl.java:104)
at com.bea.wlcp.wlng.plugin.PluginManagerImpl.processRequest(PluginManagerImpl.java:78)
at com.bea.wlcp.wlng.util.EJBHelper.processRequest(EJBHelper.java:42)

 

[STUCK] ExecuteThread: '200' for queue: 'weblogic.kernel.Default(self-tuning)'" daemon prio=10 tid=0x0000000052f9e800 nid=0x72be in Object.wait() [0x0000000060127000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007488979e0> (a weblogic.rjvm.ResponseImpl)
at weblogic.rjvm.ResponseImpl.waitForData(ResponseImpl.java:87)
- locked <0x00000007488979e0> (a weblogic.rjvm.ResponseImpl)
at weblogic.rjvm.ResponseImpl.getTxContext(ResponseImpl.java:127)
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:110)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
at com.bea.wlcp.wlng.georedundant.GeoDataConsistencyCheckerImpl$GeoNodeCounterImpl_1033_WLStub.getLastKnownCount(Unknown Source)

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.