oracle / docker-images

Official source of container configurations, images, and examples for Oracle products and projects
https://developer.oracle.com/use-cases/#containers
Universal Permissive License v1.0
6.52k stars 5.42k forks source link

Coherence not working OracleSOASuite #1739

Open a5rar opened 3 years ago

a5rar commented 3 years ago

Whilst playing around with OracleSoaSuite 12.2.1.3 I noticed that when i deploy a composite to a managed server node using an Ant script or via the em console, that the composite does not appear on the other nodes. I am playing around inside AWS and I am using an awsvpc network mode for my containers.

My usage is bit different to the examples in that the soa managed servers are created dynamically and registered to the cluster and the default coherence cluster using a wlst script. so i have basically built on thee scripts to create a soa managed server.

I can see all the functionality for the dynamic soa managed servers is correct an they are workign as expected with the exception of coherence.

Its definitely an issue with the coherence because if i register a new container it has all the latest composites deployed.

ashageetha commented 3 years ago

Hi @a5rar,

Currently OracleSoaSuite dockerfiles (https://github.com/oracle/docker-images/tree/master/OracleSOASuite/dockerfiles) supports configured clusters. If you create SOA Cluster referring to instructions provided in https://github.com/oracle/docker-images/tree/master/OracleSOASuite/dockerfiles//README.md, then the composite deployed to one managed server, appears on the other server as well. Please confirm if the Coherence issue is seen with configured clusters as well.

Thanks & Regards, Asha

a5rar commented 3 years ago

Hi @ashageetha , My managed servers are part of a wbelogic cluster and that weblogic cluster is part of the defualtCoherenceCluster.

The root cause of my issue is that when the managed servers were coming up they were listening for coherence on a ephemeral port, unfortunately its difficult to open a ephemeral range in AWS ECS cluster.

I did find a script here https://docs.oracle.com/middleware/1221/wls/CLUST/coherence.htm#CLUST671 which i used to set the coherence port, this fixed my issue but it has made the admin server very flaky. Ever since i added that config in i have started to get the below exception, which sometimes requires the admin server to bea cleaned and restarted.

####<Dec 7, 2020 4:24:58,483 PM GMT> <Critical> <Management> <ip-10-202-6-150.eu-west-2.compute.internal> <ccms_soa_ms_1607357892_25804> <[ACTIVE] ExecuteThread: '38' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <051e1fd0-5aad-41ab-9852-c2fb699678a6-00000141> <1607358298483> <[severity-value: 4] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-141190> <The commit phase of the configuration update failed with an exception. java.lang.AssertionError: Impossible Exception at weblogic.management.configuration.ConfigurationMBeanImpl$Helper.applyPropertyUpdate(ConfigurationMBeanImpl.java:1009) at weblogic.management.configuration.CoherenceMemberConfigMBeanImpl$Helper.applyPropertyUpdate(CoherenceMemberConfigMBeanImpl.java:1103) at weblogic.descriptor.internal.AbstractDescriptorBeanHelper.applyUpdate(AbstractDescriptorBeanHelper.java:132) at weblogic.descriptor.internal.DescriptorImpl.applyUpdate(DescriptorImpl.java:416) at weblogic.descriptor.internal.DescriptorImpl.applyUpdate(DescriptorImpl.java:405) at weblogic.descriptor.internal.DescriptorImpl.activateUpdate(DescriptorImpl.java:341) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.activateUpdate(RuntimeAccessDeploymentReceiverService.java:2175) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.commitCurrentTreeAndSaveRevertDiffs(RuntimeAccessDeploymentReceiverService.java:2094) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.processChanges(RuntimeAccessDeploymentReceiverService.java:658) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.access$000(RuntimeAccessDeploymentReceiverService.java:86) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService$2.run(RuntimeAccessDeploymentReceiverService.java:556) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:137) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.doCommit(RuntimeAccessDeploymentReceiverService.java:551) at weblogic.management.provider.internal.RuntimeAccessDeploymentReceiverService.commit(RuntimeAccessDeploymentReceiverService.java:449) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:217) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.commit(DeploymentReceiverCallbackDeliverer.java:65) at weblogic.deploy.service.internal.statemachines.targetserver.AwaitingCommit.callDeploymentReceivers(AwaitingCommit.java:267) at weblogic.deploy.service.internal.statemachines.targetserver.AwaitingCommit.handleCommit(AwaitingCommit.java:121) at weblogic.deploy.service.internal.statemachines.targetserver.AwaitingCommit.receivedCommit(AwaitingCommit.java:44) at weblogic.deploy.service.internal.transport.CommonMessageReceiver.receiveRequestCommitMsg(CommonMessageReceiver.java:674) at weblogic.deploy.service.internal.transport.CommonMessageReceiver$3.run(CommonMessageReceiver.java:1015) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:678) at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352) at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337) at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57) at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420) at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)