Correlate Manager Login/ID issue while updating permission
search cancel

Correlate Manager Login/ID issue while updating permission

book

Article ID: 202227

calendar_today

Updated On:

Products

CA Identity Manager CA Identity Governance CA Identity Portal CA Identity Suite

Issue/Introduction

We are seeing some issue in "Update Permissions Configuration with Universe Users" whenever enabling the checkbox of Correlate Manager/Login ID. This activity is taking too long and after that getting the error. Below is the error:

02:54:45,112 ERROR [stderr] (default task-18) org.apache.wicket.protocol.http.request.InvalidUrlException: org.apache.wicket.WicketRuntimeException: After 10 minutes the Pagemap null is still locked by: Thread[default task-39,5,main], giving up trying to get the page for path: 31:headerPanel:mainTabs:menuPanel:topmenuitems:6:menuItem:menuitemfragment:menuitemlist:menuitemlinks:7:menuItem:menuitemfragment:linkPanel:linkid

02:54:45,112 ERROR [stderr] (default task-18)   at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262)

02:54:45,113 ERROR [stderr] (default task-18)   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1339)

02:54:45,113 ERROR [stderr] (default task-18)   at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)

02:54:45,113 ERROR [stderr] (default task-18)   at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

02:54:45,113 ERROR [stderr] (default task-18)   at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

02:54:45,113 ERROR [stderr] (default task-18)   at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)

02:54:45,113 ERROR [stderr] (default task-18)   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

02:54:45,113 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

02:54:45,113 ERROR [stderr] (default task-18)   at com.eurekify.security.SecurityFilter.doFilterInternal(SecurityFilter.java:57)

02:54:45,114 ERROR [stderr] (default task-18)   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

02:54:45,114 ERROR [stderr] (default task-18)   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

02:54:45,114 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

02:54:45,114 ERROR [stderr] (default task-18)   at com.eurekify.security.ClearUserDetailsFilter.doFilterInternal(ClearUserDetailsFilter.java:23)

02:54:45,114 ERROR [stderr] (default task-18)   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

02:54:45,114 ERROR [stderr] (default task-18)   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

02:54:45,114 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

02:54:45,115 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)

02:54:45,115 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)

02:54:45,115 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

02:54:45,115 ERROR [stderr] (default task-18)   at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

02:54:45,115 ERROR [stderr] (default task-18)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

02:54:45,115 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)

02:54:45,116 ERROR [stderr] (default task-18)   at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

02:54:45,117 ERROR [stderr] (default task-18)   at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

02:54:45,117 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)

02:54:45,118 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)

02:54:45,118 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)

02:54:45,118 ERROR [stderr] (default task-18)   at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)

02:54:45,118 ERROR [stderr] (default task-18)   at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)

02:54:45,118 ERROR [stderr] (default task-18)   at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)

02:54:45,118 ERROR [stderr] (default task-18)   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

02:54:45,118 ERROR [stderr] (default task-18)   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

02:54:45,119 ERROR [stderr] (default task-18)   at java.lang.Thread.run(Thread.java:748)

02:54:45,119 ERROR [stderr] (default task-18) Caused by: org.apache.wicket.WicketRuntimeException: After 10 minutes the Pagemap null is still locked by: Thread[default task-39,5,main], giving up trying to get the page for path: 31:headerPanel:mainTabs:menuPanel:topmenuitems:6:menuItem:menuitemfragment:menuitemlist:menuitemlinks:7:menuItem:menuitemfragment:linkPanel:linkid

02:54:45,119 ERROR [stderr] (default task-18)   at sun.nio.ch.FileDispatcherImpl.read0(Native Method)

02:54:45,119 ERROR [stderr] (default task-18)   at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)

02:54:45,119 ERROR [stderr] (default task-18)   at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)

02:54:45,119 ERROR [stderr] (default task-18)   at sun.nio.ch.IOUtil.read(IOUtil.java:197)

02:54:45,120 ERROR [stderr] (default task-18)   at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.net.nt.TimeoutSocketChannel.read(TimeoutSocketChannel.java:144)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.net.ns.NIOHeader.readHeaderBuffer(NIOHeader.java:82)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:139)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:101)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:80)

02:54:45,120 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:98)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)

02:54:45,121 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822)

02:54:45,122 ERROR [stderr] (default task-18)   at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)

02:54:45,122 ERROR [stderr] (default task-18)   at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:643)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:661)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:701)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.object.SqlQuery.execute(SqlQuery.java:112)

02:54:45,123 ERROR [stderr] (default task-18)   at org.springframework.jdbc.object.SqlQuery.findObject(SqlQuery.java:252)

02:54:45,124 ERROR [stderr] (default task-18)   at org.springframework.jdbc.object.SqlQuery.findObject(SqlQuery.java:260)

02:54:45,124 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageJdbcDalImpl.loadUser(SageJdbcDalImpl.java:978)

02:54:45,124 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageJdbcDalImpl.loadUser(SageJdbcDalImpl.java:973)

02:54:45,124 ERROR [stderr] (default task-18)   at sun.reflect.GeneratedMethodAccessor251.invoke(Unknown Source)

02:54:45,124 ERROR [stderr] (default task-18)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

02:54:45,124 ERROR [stderr] (default task-18)   at java.lang.reflect.Method.invoke(Method.java:498)

02:54:45,124 ERROR [stderr] (default task-18)   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

02:54:45,125 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

02:54:45,125 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

02:54:45,125 ERROR [stderr] (default task-18)   at com.eurekify.dal.CacheMissInterceptor.invoke(CacheMissInterceptor.java:234)

02:54:45,125 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

02:54:45,125 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

02:54:45,125 ERROR [stderr] (default task-18)   at com.sun.proxy.$Proxy111.loadUser(Unknown Source)

02:54:45,126 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageDalImpl$2.invoke(SageDalImpl.java:1421)

02:54:45,126 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageDalImpl$2.invoke(SageDalImpl.java:1418)

02:54:45,126 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageDalImpl.findUser(SageDalImpl.java:1476)

02:54:45,126 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageDalImpl.findUser(SageDalImpl.java:1424)

02:54:45,126 ERROR [stderr] (default task-18)   at com.eurekify.dal.SageDalImpl.findUser(SageDalImpl.java:1442)

02:54:45,126 ERROR [stderr] (default task-18)   at sun.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)

02:54:45,126 ERROR [stderr] (default task-18)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

02:54:45,126 ERROR [stderr] (default task-18)   at java.lang.reflect.Method.invoke(Method.java:498)

02:54:45,127 ERROR [stderr] (default task-18)   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

02:54:45,127 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)

02:54:45,127 ERROR [stderr] (default task-18)   at com.sun.proxy.$Proxy115.findUser(Unknown Source)

02:54:45,127 ERROR [stderr] (default task-18)   at sun.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)

02:54:45,127 ERROR [stderr] (default task-18)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

02:54:45,127 ERROR [stderr] (default task-18)   at java.lang.reflect.Method.invoke(Method.java:498)

02:54:45,127 ERROR [stderr] (default task-18)   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

02:54:45,128 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

02:54:45,128 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

02:54:45,128 ERROR [stderr] (default task-18)   at com.eurekify.dal.DeadlockRetryInterceptor.invoke(DeadlockRetryInterceptor.java:21)

02:54:45,128 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

02:54:45,128 ERROR [stderr] (default task-18)   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

02:54:45,128 ERROR [stderr] (default task-18)   at com.sun.proxy.$Proxy115.findUser(Unknown Source)

02:54:45,129 ERROR [stderr] (default task-18)   at sun.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)

02:54:45,129 ERROR [stderr] (default task-18)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

02:54:45,129 ERROR [stderr] (default task-18)   at java.lang.reflect.Method.invoke(Method.java:498)

02:54:45,129 ERROR [stderr] (default task-18)   at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:414)

02:54:45,129 ERROR [stderr] (default task-18)   at org.apache.wicket.proxy.$Proxy283.findUser(Unknown Source)

02:54:45,129 ERROR [stderr] (default task-18)   at com.eurekify.actions.batch.CompareUniMasterUDBWithSageMasterUDB.findManagerLogin(CompareUniMasterUDBWithSageMasterUDB.java:254)

02:54:45,129 ERROR [stderr] (default task-18)   at com.eurekify.actions.batch.CompareUniMasterUDBWithSageMasterUDB.compareConfigurationsAndCreateUsersVOS(CompareUniMasterUDBWithSageMasterUDB.java:184)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.actions.batch.CompareUniMasterUDBWithSageMasterUDB.executeActionImpl(CompareUniMasterUDBWithSageMasterUDB.java:97)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.actions.batch.BatchAbstractActionNoCreateTicket.executeAction(BatchAbstractActionNoCreateTicket.java:18)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.web.sageMaster.UpdateSageMasterPage.generateUdbs(UpdateSageMasterPage.java:248)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.web.sageMaster.UpdateSageMasterPage.getDataOnSubmit(UpdateSageMasterPage.java:174)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.web.sageMaster.UpdateSageMasterPage.<init>(UpdateSageMasterPage.java:69)

02:54:45,130 ERROR [stderr] (default task-18)   at com.eurekify.web.sageMaster.panels.NewSageMasterUsersPanel$3.onSubmit(NewSageMasterUsersPanel.java:178)

02:54:45,130 ERROR [stderr] (default task-18)   at org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:101)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:156)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:177)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:312)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:157)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)

02:54:45,131 ERROR [stderr] (default task-18)   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)

02:54:45,132 ERROR [stderr] (default task-18)   ... 42 more

02:54:45,132 INFO  [stdout] (default task-18) org.apache.wicket.WicketRuntimeException: After 10 minutes the Pagemap null is still locked by: Thread[default task-39,5,main], giving up trying to get the page for path: 31:headerPanel:mainTabs:menuPanel:topmenuitems:6:menuItem:menuitemfragment:menuitemlist:menuitemlinks:7:menuItem:menuitemfragment:linkPanel:linkid

02:58:58,830 INFO  [org.apache.commons.httpclient.HttpMethodBase] (Worker_actionq#ActionQ1#WPDS_1) Discarding unexpected response: HTTP/1.1 100 Continue

02:59:00,060 INFO  [com.ca.sec.ig.scheduler.OverdueTaskExpiryJob] (QuartzScheduler_Worker-1) Checking for expired tasks

02:59:11,290 INFO  [com.ca.sec.ig.scheduler.OverdueTaskExpiryJob] (QuartzScheduler_Worker-1) Finished checking for expired tasks @ 0:00:11.230

Environment

Release : 14.2

Component : CA IDENTITY SUITE (VIRTUAL APPLIANCE)

Resolution

We have feedback as to what this does.
Now we have to understand the use case that you are using it for. It may not be needed, and we know that this customer is a very large customer, and doing an action like this will take a very long time to complete.

………………………………………………..

This feature is used to synchronize the Eurekify config user with the selected universe master config user.
If the option 'Correlate Manager Login/ID' is not selected, it will simply copy the universe user manager field
into the Eurekify user manager field. But, if the option is selected, it will get the manager login field of the
universe user and update the Eurekify user manager field with this loginId. It means the user is correlated with
the manager login field. This use case can occur when a user has different values for PersonID and LoginID.

……………………………………………….

Customer has agreed to close as they are not needing this functionality at this time.