Topic
7 replies Latest Post - ‏2013-04-04T12:58:31Z by damorris
SystemAdmin
SystemAdmin
445 Posts
ACCEPTED ANSWER

Pinned topic Multi Repository Search

‏2013-04-04T10:25:44Z |
Hi

I would like to know . Is there any way to do multi repository search using ICN(either customized or extended).

In detail - Search across the object stores.
Updated on 2013-04-04T12:58:31Z at 2013-04-04T12:58:31Z by damorris
  • damorris
    damorris
    760 Posts
    ACCEPTED ANSWER

    Re: Multi Repository Search

    ‏2013-04-04T11:10:37Z  in response to SystemAdmin
    Hi,

    There are a couple of ways you can search across multiple object stores using Content Navigator (ICN) and FileNet Content Manager:
    1. Content Engine allows you to search across up to 5 object stores at one time. This is supported through ICN. Refer to the Content Engine documentation for details.
    2. You can use IBM Content Analytics (ICA) with Enterprise Search to crawl and index your object stores. ICN includes a plugin that will add ICA search features in to the ICN UI. You can then search across object stores in the ICA feature with thumbnails, dynamic summaries, term highlighting, faceted search, etc.
    • SystemAdmin
      SystemAdmin
      445 Posts
      ACCEPTED ANSWER

      Re: Multi Repository Search

      ‏2013-04-04T11:51:21Z  in response to damorris
      Thanks for prompt reply damorris.

      In this context, please clarify me on one more point i.e, In the ICN terminology one desktop points to one Content Engine instance(CE1)(which may have multiple object stores). Is it possible to configure one more desktop which points to another Content Engine instance(CE2)?

      Note: Both the CE's are running in different servers.
      • damorris
        damorris
        760 Posts
        ACCEPTED ANSWER

        Re: Multi Repository Search

        ‏2013-04-04T12:23:10Z  in response to SystemAdmin
        Actually, a desktop doesn't really know about Content Engine instances as the Desktop is completely repository independent. You can configure multiple repository definitions and each should be able to be in different P8 domains. You could then add those to the desktop.
        • SystemAdmin
          SystemAdmin
          445 Posts
          ACCEPTED ANSWER

          Re: Multi Repository Search

          ‏2013-04-04T12:43:46Z  in response to damorris
          Again thanks for the speedy response damorris.

          It's interesting. We can create multiple repositories which points to different CE instances under different p8 domains.But how about the LTPA? When we setup the ICN to single CE we configure the LTPA of CE in the ICN hosted app server, by this the handshakes happen fine. Where as for a different CE instance i cannot import another LTPA? How to over come this? Please assist me.
          Actually i tried with out LTPA. i hitted with the following error -
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() serverName: iiop://ce2:2811/FileNet/Engine
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() displayName: ICN
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() it.hasNext(): true
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() useSSO: true
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() ssoRepoConfig.getServerName(): iiop://ce2:2811/FileNet/Engine
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() ssoRepoConfig.getObjectId(): FNOS
          4/4/13 18:11:49:366 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() serverName: iiop://ce2:2811/FileNet/Engine
          4/4/13 18:11:49:382 IST 00000030 SystemOut O CIWEB Info : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories() The P8 server configured is for SSO 'iiop://*ce1*:2810/FileNet/Engine. RepositoryName=FNOS
          4/4/13 18:11:49:382 IST 00000030 SystemOut O CIWEB Exit : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.appendSameDomainRepositories()
          4/4/13 18:11:49:382 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() Starting JAAS login.
          4/4/13 18:11:49:382 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() Obtaining and testing CE connection.
          4/4/13 18:11:49:382 IST 00000030 SystemOut O CIWEB Perf : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() P8 login start: Navigator
          4/4/13 18:11:49:398 IST 00000030 SystemOut O CIWEB Perf : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() (elapsed time: 0.16 seconds) P8 login completed
          4/4/13 18:11:49:398 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() CE connection obtained
          4/4/13 18:11:49:398 IST 00000030 SystemOut O CIWEB Debug: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection() JAAS login successful. subject =Subject:
          Principal: DEVLDAP:389/P8admin
          Public Credential: com.ibm.ws.security.auth.WSCredentialImpl@389c389c
          Private Credential: com.ibm.ws.security.token.SingleSignonTokenImpl@3f0d3f0d
          Private Credential: com.ibm.ws.security.token.AuthenticationTokenImpl@7b887b88
          Private Credential: com.ibm.ws.security.token.AuthorizationTokenImpl@3eb33eb3

          4/4/13 18:11:49:413 IST 00000030 SystemOut O CIWEB Info : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.executeAction() userid = p8admin
          4/4/13 18:11:49:413 IST 00000030 SystemOut O CIWEB Info : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.executeAction() displayName = ICN
          4/4/13 18:11:49:413 IST 00000030 SystemOut O CIWEB Info : p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.executeAction() desktopName = ICNDEMO
          4/4/13 18:11:49:413 IST 00000030 SystemOut O CIWEB Error: p8admin @ localhost com.ibm.ecm.struts.actions.p8.P8LogonAction.executeAction()
          com.filenet.api.exception.EngineRuntimeException: FNRCS0001E: SECURITY_ANONYMOUS_DISALLOWED: Access to Content Engine was not allowed because the request was made anonymously instead of by an authenticated user. The application server reported that the user was anonymous. errorStack={
          at com.filenet.engine.context.SecurityContext.<init>(SecurityContext.java:75)
          at com.filenet.engine.context.ServerCallContext.<init>(ServerCallContext.java:107)
          at com.filenet.engine.context.ServerCallContext.newInstance(ServerCallContext.java:1115)
          at com.filenet.engine.jca.impl.RequestBrokerImpl.getObjects(RequestBrokerImpl.java:639)
          at com.filenet.engine.ejb.EngineCoreBean._getObjects(EngineCoreBean.java:208)
          at com.filenet.engine.ejb.EngineCoreBean.getObjects(EngineCoreBean.java:175)
          at com.filenet.engine.ejb.EJSLocalStatelessEngineCore_22877cb1.getObjects(Unknown Source)
          at com.filenet.engine.ejb.EngineBean.getObjects(EngineBean.java:415)
          at com.filenet.apiimpl.transport.ejbstubs.EJSRemoteStatelessEngine_2e64c374.getObjects(Unknown Source)
          at com.filenet.apiimpl.transport.ejbstubs._EJSRemoteStatelessEngine_2e64c374_Tie.getObjects__com_filenet_apiimpl_transport_GetObjectRequest__com_filenet_apiimpl_transport_ClientCallContext(_EJSRemoteStatelessEngine_2e64c374_Tie.java:246)
          at com.filenet.apiimpl.transport.ejbstubs._EJSRemoteStatelessEngine_2e64c374_Tie._invoke(_EJSRemoteStatelessEngine_2e64c374_Tie.java:116)
          at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:623)
          at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:476)
          at com.ibm.rmi.iiop.ORB.process(ORB.java:513)
          at com.ibm.CORBA.iiop.ORB.process(ORB.java:1574)
          at com.ibm.rmi.iiop.Connection.respondTo(Connection.java:2845)
          at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2718)
          at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
          at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:118)
          at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
          }
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:45)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:515)
          at com.ibm.rmi.io.NoArgNewInstanceAction.run(NoArgNewInstanceAction.java:43)
          at java.security.AccessController.doPrivileged(AccessController.java:251)
          at com.ibm.rmi.io.IIOPInputStream.allocateNewExternalizableObject(IIOPInputStream.java:2323)
          at com.ibm.rmi.io.IIOPInputStream.readExternalizable(IIOPInputStream.java:1095)
          at com.ibm.rmi.io.IIOPInputStream.simpleReadObjectInternal(IIOPInputStream.java:425)
          at com.ibm.rmi.io.IIOPInputStream.simpleReadObjectLoop(IIOPInputStream.java:512)
          at com.ibm.rmi.io.IIOPInputStream.inputObjectUsingClassDesc(IIOPInputStream.java:1456)
          at com.ibm.rmi.io.IIOPInputStream.inputObjectClassDesc(IIOPInputStream.java:1410)
          at com.ibm.rmi.io.IIOPInputStream.readSerializable(IIOPInputStream.java:1139)
          at com.ibm.rmi.io.IIOPInputStream.simpleReadObjectInternal(IIOPInputStream.java:427)
          at com.ibm.rmi.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:463)
          at com.ibm.rmi.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:210)
          at com.ibm.rmi.iiop.CDRReader.read_value(CDRReader.java:2011)
          at com.filenet.apiimpl.transport.ejbstubs._Engine_Stub.getObjects(Unknown Source)
          at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl._getObjects(EJBSession.java:675)
          at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl.run(EJBSession.java:531)
          at java.security.AccessController.doPrivileged(AccessController.java:284)
          at javax.security.auth.Subject.doAs(Subject.java:573)
          at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:194)
          at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:151)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
          at java.lang.reflect.Method.invoke(Method.java:599)
          at com.filenet.apiimpl.util.J2EEUtilWS.doAs(J2EEUtilWS.java:215)
          at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl.getObjects(EJBSession.java:573)
          at com.filenet.apiimpl.transport.ejb.EJBSession.getObjects(EJBSession.java:470)
          at com.filenet.apiimpl.util.SessionHandle.getObjects(SessionHandle.java:381)
          at com.filenet.apiimpl.core.Session.callGetObjects(Session.java:122)
          at com.filenet.apiimpl.core.Session.executeGetObject(Session.java:327)
          at com.filenet.apiimpl.core.Session.getObject(Session.java:341)
          at com.filenet.apiimpl.core.IndependentObjectImpl.getObject(IndependentObjectImpl.java:149)
          at com.filenet.apiimpl.core.IndependentObjectImpl.refresh(IndependentObjectImpl.java:157)
          at com.filenet.api.core.Factory$EntireNetwork.fetchInstance(Factory.java:359)
          at com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection(P8LogonAction.java:256)
          at com.ibm.ecm.struts.actions.p8.P8LogonAction.createP8Connection(P8LogonAction.java:136)
          at com.ibm.ecm.struts.actions.p8.P8LogonAction.executeAction(P8LogonAction.java:100)
          at com.ibm.ecm.struts.actions.p8.P8BaseAction.executeBaseAction(P8BaseAction.java:180)
          at com.ibm.ecm.struts.actions.BaseAction.execute(BaseAction.java:176)
          at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
          at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
          at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
          at com.ibm.ecm.struts.controller.ControllerServlet.process(ControllerServlet.java:239)
          at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
          at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443)
          at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1384)
          at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:104)
          at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
          at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:852)
          at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:785)
          at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443)
          at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175)
          at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
          at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:859)
          at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557)
          at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173)
          at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455)
          at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384)
          at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
          at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
          at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
          at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
          at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
          at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)
          at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766)
          at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896)
          at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
          • damorris
            damorris
            760 Posts
            ACCEPTED ANSWER

            Re: Multi Repository Search

            ‏2013-04-04T12:48:52Z  in response to SystemAdmin
            This issue is really beyond ICN. You will need to use a single LDAP or potentially configure a federated LDAP solution for use with WAS on both domains. Ultimately SSO requires using the same domain (i.e. ibm.com) and usually some common LDAP. You'd probably either have to disable the SSO on both systems altogether or figure out a way to make them interoperate, something which is really beyond ICN.

            Sorry can't be of more help here.
            • SystemAdmin
              SystemAdmin
              445 Posts
              ACCEPTED ANSWER

              Re: Multi Repository Search

              ‏2013-04-04T12:55:02Z  in response to damorris
              Hi Damorris,

              In my scenario LDAP is common for both the CE's. But only thing differs is app server(WAS). Each CE resides in different WAS.
              • damorris
                damorris
                760 Posts
                ACCEPTED ANSWER

                Re: Multi Repository Search

                ‏2013-04-04T12:58:31Z  in response to SystemAdmin
                OK, then you need to configure both WAS instances to have the same LDAP settings. You can import the key from one in to the other and you should be able to get SSO working across them. There are WebSphere redbooks out there that should cover this topic pretty well.