Implementing repository manager

I implemented a custom repositry manager, which read xml file from a backend system (db). But i couldn't see the items which ist trasformed into unified aspects.  May be i make mistakes in code.
Have you any suggestion and sample code.
Thanks for any feedback
Regards
Osman

Hi Thilo,
Thank you for your reply. I have implemented Versioning & Locking with write capability.
The checkin button is available for "Edit Locally" operation after configuring Content Management->utilities>Edit Locally to use activeX. it works fine.
But if we close the browser, where we clicked for "Edit Locally", we dont have any mechanism to checkin. i.e. we can't checkout, edit independent of EP, and checkin at a later point of time. instead, checkout>edit->checkin is a continuous sequence. Do EP support checkin sometimes after closing the browser anyway?
Thanks,
John

Similar Messages

  • Implementing Repository Manager- Versioning

    Hi,
    While implementing repository manager on EP 6.2, how can we enable labelling feature? Just implementing IMutableAdvancedVersioningManager is not giving any options in KM IView.
    Thanks in Advance,
    John

    As mentioned earlier in a separate thread, the KM IViews do not take any advantage of advanced versioning.
    Best regards, Julian

  • Implementing Repository manager Doc Not found

    Hi,
    I'm not able to find the document describing the implementation details of Repository Manager. When i click on the link provided on sdn i get a page not found error. It was previously found in the below link. Kindly help me in finding the document "Implementing a repository Manager".
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/a772ac90-0201-0010-9985-8a1f74d7b152
    Regards,
    Naveen

    Hi Pooja,
    Thanks for the quick reply. I'm actually searching for the document which describes the step by step procedure to write my own Repository Manager. The above link provides me only the example code.
    Actually that document link is still visible in sdn but the page has been moved or removed without updating the link.
    SDN home Page -> SDN community ->SAP Netweaver -> Knowledge management ->KMC knowledge Centre -> Repository Framework -> Getting Started -> Implementing a Repository Manager.

  • Searching problems when implementing my own repository manager

    Hi there,
    i've serious problems to get the search fuctionality for my own repository manager running. I'm using the 'new', Netweaver-based api.
    Always if I'm launching a search I receive a ClassNotFoundException in the follwing context:
    #1.5#172.16.17.102:7CF6B6:FF73BDDB07:-36E7#1097161124650#com.sapportals.wcm.WcmException#irj#com.sapportals.wcm.WcmException.WcmException(118)#System#0#####System_Thread_37##0#0#Error##Plain###invalid manager class: com.sapportals.wcm.repository.runtime.ManagerAdapter java.lang.ClassCastException: invalid manager class: com.sapportals.wcm.repository.runtime.ManagerAdapter
         at com.sapportals.wcm.repository.RMAdapter.<init>(RMAdapter.java:48)
         at com.sapportals.wcm.repository.runtime.CmSystem.getResourcesImpl(CmSystem.java:1134)
         at com.sapportals.wcm.repository.runtime.CmSystem.getResources(CmSystem.java:356)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResources(CmAdapter.java:153)
         at com.sapportals.wcm.service.indexmanagement.retrieval.trex.TrexSearchIndexCollection.getSearchResults(TrexSearchIndexCollection.java:1126)
         at com.sapportals.wcm.service.indexmanagement.retrieval.search.SearchSession.getSearchResults(SearchSession.java:293)
         at com.sapportals.wcm.service.indexmanagement.retrieval.search.FederatedSearchSession.getSearchResults(FederatedSearchSession.java:111)
         at com.sapportals.wcm.rendering.collection.SearchRendererStatus.refresh(SearchRendererStatus.java:180)
         at com.sapportals.wcm.rendering.collection.LightCollectionRenderer.createStatus(LightCollectionRenderer.java:718)
         at com.sapportals.wcm.rendering.collection.LightCollectionRenderer.renderAll(LightCollectionRenderer.java:498)
         at com.sapportals.wcm.rendering.control.cm.NeutralControl.render(NeutralControl.java:141)
         at com.sapportals.wcm.rendering.layout.cm.SimpleLayoutController.render(SimpleLayoutController.java:39)
         at com.sapportals.wcm.rendering.control.cm.WdfProxy.render(WdfProxy.java:1229)
         at com.sapportals.wdf.layout.HorizontalLayout.renderControls(HorizontalLayout.java:41)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:153)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.ControllerDynPage.executeEvent(ControllerDynPage.java:338)
         at com.sapportals.wdf.BaseDynPage.onWdfEvent(BaseDynPage.java:132)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:172)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:101)
         at com.sapportals.htmlb.page.PageProcessorServlet.handleRequest(PageProcessorServlet.java:64)
         at com.sapportals.htmlb.page.PageProcessorServlet.doPost(PageProcessorServlet.java:25)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sapportals.wcm.app.servlet.WcmHtmlbBaseServlet.service(WcmHtmlbBaseServlet.java:81)
         at com.sapportals.wcm.portal.proxy.PCProxyServlet.service(PCProxyServlet.java:280)
         at com.sapportals.portal.prt.core.broker.ServletComponentItem$ServletWrapperComponent.doContent(ServletComponentItem.java:110)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:143)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:195)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:209)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:589)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:143)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:195)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:636)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:209)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)
         at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)
         at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)
         at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)
         at com.inqmy.services.httpserver.server.Response.handle(Response.java:165)
         at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1133)
         at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
         at com.inqmy.core.cluster.impl0.ParserRunner.run(ParserRunner.java:35)
         at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
    I'm using EP 6.0 SP2 directly installed from the CD
    #51 020 549 without explicit installation of any patch or hotfix; the portal itself shows the version number 6.0.2.0.0 (implementation version 6.2.0.0.200310100950).
    I switched on logging but I never reached the INamespaceManager's methods isQueryPropertyNameUnderstood() or getQueryBuilder().
    So I figure that this might a problem of my (too old?) unpatched version of EP6????
    What can I do to get the serach func running?
    Thanks for your support,
    Daniel

    Hi Karsten,
    thanks for your annotation.
    Does it mean that I <b>HAVE TO</b> apply at least Patch 4
    to get the search working or <b>SHOULD</b> I apply the patch to be up-to-date and look for an error in my code???
    Thanx a lot,
    best regards,
    Daniel

  • SOAP/Web service based repository manager

    Hi,
    We would like to implement a repository manager using SOAP/Web service messages to connect to the document store.  The solution will have to support most opperations as the WebDAV repository manager supports.  TREX has to be able to crawl for indexing/classification, but I guess that is not a problem.
    Is the some information out there on creating repository managers like this, and how they tie in with ACL managers, cahces etc?
    Message was edited by: Bjorn Bjornstad

    Not relevant any more

  • WebDav Repository Manager Disappears???

    Hello,
    I am seeing some strange behavior with an IIS WebDAV based KM WebDAV repository manager I created. I used the following as a basis for my setup.
    http://help.sap.com/saphelp_nw04/helpdata/en/4a/217fb6c33c6748a1715a161ac942cd/frameset.htm
    I created the memory cache, CM HTTP System, a portal system aliased with the same ID as the CM system, and finally the WebDAV Repository manager. If further setting detail is needed I can send that. The repository worked on Friday. It is not there today. This has happened twice. When I drill down into Content Administration > KM Content>root > runtime > Repository Managers... > IISWD > servers I am presented with "hostname". When I select Details>Properties>Miscellaneous tab I see failures.
    Example:
    last-failure-1:   2007-07-16T20:12:14Z: PROPFIND /ExternalPortal: com.sapportals.wcm.WcmException: sending request to: http://hostname/ request uri: /ExternalPortal unable to connect to hostname: unknown host: hostname (java.net.UnknownHostException: hostname)
    All of the required KM objects mentioned before are still present and configured as they were a few days ago. Is my repository loosing it's reference to the CM HTTP System.? Has anyone seen this before?
    Thanks,
    Doug

    Hi Doug
    I believe the problem is that your HTTP System in the portal cannot see the share you are trying to integrate into the potal. Is it a webdav-share set up using an IIS?
    I have tried to implement the WebDAV/SSO solution where we got the same error for no reason. But after installing some different hotfixes (http://support.microsoft.com/default.aspx?scid=kb;en-us;893246, eg) and changing server to a standalone IIS, the error didn't occur any more.
    Hope that can give you some ideas.
    Kind regards,
    Martin

  • Problem in copyResource()-Repository Manager,ClassCastException

    Hi,
    I have written a read-write custom repository manager from the sample downloaded from sdn(A kind of extension of SimpleRepositoryManager).
    I tried to implement the ImutableNamespace opertion copyResource(IResourceHandle handle, ICopyDescriptor copy) with supported option COPY_DEEP and COPY.
    It really does a copy to the destination directory but after that it throws a ClassCastException
    for com.sap.netweaver.bc.rf.common.Rid;some how my feeling is its failing either in findResource or lookup after copy.
    For detail exception pls see below(from EP KM Iview-call stack)
    System Error
    An exception occurred during the program execution. Below you will find technical information pertaining to this exception that you might want to forward to your system administrator.
    Exception Class 
    Exception Message 
    Call Stack java.lang.ClassCastException: com.sap.netweaver.bc.rf.common.Rid
            at com.sapportals.wcm.repository.GeneralImpl2.internalCopyManager(GeneralImpl2.java:705)
            at com.sapportals.wcm.repository.ResourceImpl2.internalCopyManager(ResourceImpl2.java:246)
            at com.sapportals.wcm.repository.ResourceImpl.internalCopy(ResourceImpl.java:2130)
            at com.sapportals.wcm.repository.ResourceImpl.copy(ResourceImpl.java:1393)
            at com.sapportals.wcm.repository.ResourceImpl.copy(ResourceImpl.java:1376)
            at com.sapportals.wcm.rfadapter.CopyUtility.copy(CopyUtility.java:112)
            at com.sapportals.wcm.rendering.uicommand.cm.CopyUtil.massCopy(CopyUtil.java:65)
            at com.sapportals.wcm.rendering.uicommand.cm.CopyUtil.copy(CopyUtil.java:51)
            at com.sapportals.wcm.rendering.uicommand.cm.UIMassCopyCommand.execute(UIMassCopyCommand.java:105)
            at com.sapportals.wcm.rendering.uicommand.cm.UIMassEmbeddedSelectCommand.execute(UIMassEmbeddedSelectCommand.java:85)
            at com.sapportals.wcm.rendering.uicommand.cm.UIMassEmbeddedSelectCommand.execute(UIMassEmbeddedSelectCommand.java:64)
            at com.sapportals.wcm.rendering.control.cm.CommandDispatcher.onMassExecute(CommandDispatcher.java:45)
            at com.sapportals.wcm.rendering.control.cm.WdfProxy.onMassExecute(WdfProxy.java:2002)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.sapportals.wdf.stack.Control.dispatchHtmlbEvent(Control.java:389)
            at com.sapportals.wdf.WdfEventDispatcher.dispatch(WdfEventDispatcher.java:175)
            at com.sapportals.wdf.WdfCompositeController.onWdfEvent(WdfCompositeController.java:549)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.sapportals.htmlb.page.DynPage.doProcessCompositeEvent(DynPage.java:204)
            at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:142)
            at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:101)
            at com.sapportals.htmlb.page.PageProcessorServlet.handleRequest(PageProcessorServlet.java:62)
            at com.sapportals.htmlb.page.PageProcessorServlet.doPost(PageProcessorServlet.java:23)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.sapportals.wcm.app.servlet.WcmHtmlbBaseServlet.service(WcmHtmlbBaseServlet.java:81)
            at com.sapportals.wcm.portal.proxy.PCProxyServlet.service(PCProxyServlet.java:313)
            at com.sapportals.portal.prt.core.broker.ServletComponentItem$ServletWrapperComponent.doContent(ServletComponentItem.java:110)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
            at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
            at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:217)
            at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:580)
            at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
            at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
            at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:670)
            at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:229)
            at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:149)
            at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:832)
            at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:666)
            at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:313)
            at com.inqmy.services.httpserver.server.Response.handle(Response.java:173)
            at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1288)
            at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
            at com.inqmy.core.cluster.impl5.ParserRunner.run(ParserRunner.java:55)
            at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:148)
             Report Error
    I am using my own xercesImpl.jar ,xalan.jar api's.which exactly didn't cause me any problem for the delete,rename opertaions.
    Is it any thing to do with configuration ,which i am missing.Pls help
    rgds
    Shovan

    You might have a look at
    <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/e3/92322ab24e11d5993800508b6b8b11/frameset.htm">this documentation</a>.
    The CM repository in mode FSDB keeps the namespace structure of the repository in the database just as it does in the other modes. Any change is done parallel in the file system and in the internal database.
    Since we have mode FSDB and the file system might change at any time by external processes, there is a component called synchronizer that checks with every lookup if the file system and the internal structure are still in sync. To determine this it looks at the modification date for folders and at modification date and size for plain files.
    If any of these do not match then the synchronizer overwrites and modifies the internal data to reflect again the status of the external file system.
    Now in your portal the synchronizer itself is working OK. That's because your repositories run fine locally.
    With your remote file systems I can think of some possible explanations.
    The caches might deliver responses after immediate file system changes. We ruled out this one already.
    The synchronizer might not recognize the changes in the file system's meta data. This is why I'd like you to try and compare the behaviour of the file system repository, see above.
    The synchonizer might run into some error when it tries to access the remote file system. This should be visible in the logs.
    Michael

  • Reusing a repository manager across multiple portal instances

    Hi everyone
    I am currently implementing a Enterprise Portal, including KM, for a customer. This customer is utilizing two portal instances, one for intranet-users, the other for extranet-users. I am not entirely sure why this approach was chosen, since it was made before I was assigned to this project.
    This customer has an interesting requirement: that both portals will utilize the same file share as a KM repository. The idea is that intranetusers (i.e. salespeople etc) will create KM resources for customers. Resources belonging to a specific customer must not be accessible by other customers. Additionally, there may be documents which is only accessible by salespeople.
    So far we have implemented automated creation of these resources, including setting the authorisation on folder, as well as file level. This works very well when working with a FSDB repository manager on the intranet server. The issue is that the authorisation settings are obviously not reflected on the extranet-portal, since we have not figured out a way of reusing the same repository manager on the other portal.
    My question then is whether it is possible to create an FSDB repository manager on one of the portals and reuse it on the other. This would quite conveniently allows us to reuse authorisation settings across both portals.
    Does anyone know whether this is possible at all?
    If you need more info to answer this, do not hesitate to ask
    Best regards,
    Svein Gunnar Standnes

    Hi Svein,
    as I assume you know, if you use a CM Repository in FSDB mode folders and documents are stored in the file system, but metadata is stored in the database. Integrating a fileshare into two portals as a CM Repository in FSDB mode will lead to serious inconsistencies, as for example one document will have KM properties in one portal but no properties (or other) in the other, different version histories, and many more!
    The only way to integrate in both portals a fileshare would be as a File System Repository Manager in <b>write-protect (read-only) mode</b>. If the repository is not read-only in such a scenario, concurrent updates to a file by different users on different installations can leave the content of the file in a corrupt state.
    So to sum it up, in write mode I would definitely refrain from integrating the file share in two portals!
    Hope this helps,
    Robert

  • Conet Repository Manager for Lotus

    Hi, guys.
    We have to use the KM Repository Manager for Lotus Domino deliverd by Conet
    which is based on Lotus Domino R6 and higher.
    Does this mean we have to BUY the new Repository Manager from Conet
    and get related implementation and configuration help from them too?

    Hello Sven,
    as far as I know and based on the SAP certification records CONET is the only company delivering a KM repository manager for Lotus Notes/Domino databases.
    Despite the fact that the "old" SAP KM repman for Domino is technically limited to R5, the CONET repman also comes with more features and richer functionality (e.g. you can configur your distributed Lotus landscape / replication architecture for the Conet repman and other features).
    Simply visit SAP TechED 2006 Session UPE106 and learn more on Lotus integration with SAP KMC.
    Regards
    Michael

  • Repository manager mass lookup calls

    Does anyone know of any documentation on what is expected from the repository manager mass lookup calls? These have to be implemented for searching with TREX to work.
    I think the first method is fairly simple:
    public List lookup(
         List ridList,
         boolean contentToBeFetched,
         List propertyNamesToBeFetched)
         throws ResourceException,      OperationNotCompletedException
    For the given list if RIDs, it should return a single ArrayList containing:
    1) a handle for each rid
    2) an InputStream for each rid if contentToBeFetched == true
    3) an IProperty for each RID and each IPropertyName specified in propertyNamesToBeFetched
    This means that the return list will contain objects of three types: IResource, InputStream and IProperty.
    Frankly, I have no idea of what to return for the second method:
    public List lookup(
         List ridList,
         Map content,
         Map properties,
         String[] permissionNames)
         throws ResourceException, OperationNotCompletedException
    Is there any documentation for these what these methods should return? What do the Maps content and properties contain? What do I do with permission names?
    Many thanks!
    -Alex

    Hi Alex,
    unfortunately the documentation of RM developemnt is not yet finished, but I'd like to clearify some of your issues:
    1) The java.util.List objects returned by teh lookup() methods should contain IResourceHandle objects from the RMs implementation
    2) The java.util.Map objects in the public List lookup( List ridList,Map content,Map properties,String[] permissionNames) method can optionally be pre-filled with content references and properties. The map has to be filled with IResourceHandle object as keys and a reference to its IContent object or IPropertyMap object as the value of the map.
    If the maps are not filled the RF will call the getContent() and getProperties() methods from the ContentManager and PropertyManager aspects.
    Regards,
    Thilo

  • Design Considerations for a Repository Manager in a clustered environment

    Hi,
    I am currently building a repository manager for a backend document management system.  Our portal is installed in a load balanced clusterd environment and we are creating the following functionality in the repostiory manager -
      -  Browse content
      -  Read/Write document Metadata 
      -  Upload/download documentation
      -  Reserve/Unreserve documentation
      -  Search
    How will a clustered environment affect the implementation of the repository manager?  Would I need to check for a clustered installation in any kind of way in my code?  Currently I do not see why this would be necessary, but i'm not entirely sure and I need this manager to work in a clustered environment.
    I could see this as being an issue if we are caching information about the documents in the repository.  However, we are not.  We will only be caching user information which can be stored separately in a single cache on each server. 
    Thanks for your help,
    Scott

    Hi Scott!
    There might be two reasons for knowing whether other cluster nodes are running or not and for communicating with them:
    - synchronizing access to the backend
    - synchronizing caches
    If your repository manager must care for serialized access to the backend you will have to synchronize cluster-wide. You don't have to, if your backend can handle parallel access on its own (like a web-server).
    If you cache data in your repository and you want to update the caches of the repositories on the other cluster nodes (maybe because you don't get events for changed data from your backend), you must think of sending messages between cluster nodes. You don't have to, if you think that the expiration of your cache entries is shorter than the required timeliness of the data.
    Kind Regards, Dirk

  • Language Issue in Repository Manager and T-REX

    Hi Everybody,
    we are trying to implement a repository manager for SAP KM. Our systems stores documents language specific in a database. Now we are wondering how we should create a view to the documents, so that every document in each language is indexed by T-REX correctly. Lets say the internal view is something like this:
       /Documents
          ->File.pdf
      /Images
          ->Image.jpg
    In this case File.pdf and Image.jpg can exist in different languages. So our question is, does T-REX create an index for each language available in the portal? If so, which would be very nice, how can we get the current language T-REX is using for indexing within our RM implementation?
    Otherwise we have to create virtual TOP-Level laguage folders for each language in our database that would look like this
    /de
       /Documents
          ->File.pdf
      /Images
          ->Image.jpg
    /en
       /Documents
          ->File.pdf
      /Images
          ->Image.jpg
    We try to avoid this, since File.pdf ist a single item with different language versions.
    Does anybody know the best way to solve this?
    Kind Regards,
    Ali

    Hi Matthias,
    I think the language handling and the mapping of default languages is application specific and should be done within the RM. In our case this available allready, since our WCMS system allready take care about that... So for a logged in user, we are able to create a language specific folder structure very nicely.
    Our problem is the indexing by TREX. We wan't to make sure that every language version of the docment can be found when people searching. So in our case the perfect solution would be that TREX asks the RM for available languages in the repository and starts a crawler for each language available in the repository.
    Something that I am not sure about is the presentation of the search results. Since the URL of the search result might point to a different language version than the logged in user has. So if the URL is
    http://server/irj/go/km/repsotory/Documents/File.pdf
    this might result to a german document, even if the searched term is in the english document. So the language must be set in the search result. For example like this
    http://server/irj/go/km/repsotory/Documents/File.pdf?locale=en
    This would be our preferred way to handle this issue. I think we will keep the virtual language folders until the new feature is available.
    Thank you guys for this very high quality answers )
    Kind Regards,
    Ali

  • Language Property of KM Repository Manager Node

    Hi Community,
    i developed a Custom Repository Manager based on the Tutorial form the Code Samples Section.
    I have a question regarding to the language of the TREX Search Results. Everything works fine, but the results have some strange languages. I have a german Site wich has the Langugage catalan. I think the Trex decides automatically which langugage the content has.
    How can i set the language-attribute in my Repository Manager manually? I tried to set the langugage to German by using the following in the function getProperties in the Node-Class:
    SystemPropertyFactory.createContentLanguageProperty("de").
    is that the right way?
    Greetz Marcus

    Hi,
    in order to re-read the config when it is changed you have to implement <b>IConfigListener</b> interface. See my reply in this thread:
    <a href="https://www.sdn.sap.com/irj/sdn/thread?threadID=99794">Re: How to read a file(Propeties files) from a respository service - IConfigListener</a>
    But I'm not sure that also works effectively with repository managers.
    For more info just let me know,
    Romano

  • Error when displaying thumbnails in new repository manager

    Hi KM Experts,
    I created a new Repository Manager as a copy of /documents.
    When I upload Images (jpegs, gifs) in this repository and try to display them using a ConsumterThumbnailExplorer I don't get the thumbnails displayed but the X-symbol that the browser displays when a image was not found. In the /documents repository the thumbnails are getting displayed.
    Here is the exception from the trace file:
    java.lang.NoClassDefFoundError: sun.awt.motif.MToolkit (initialization failure)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:119)
    at java.awt.Toolkit$2.run(Toolkit.java:796)
    at java.security.AccessController.doPrivileged(AccessController.java:197)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:787)
    at com.sapportals.wcm.repository.manager.thumbnail.ResourceImageThumbnailPlugIn.getThumbnail(ResourceImageThumbnailPlugIn.java:96)
    at com.sapportals.wcm.repository.manager.thumbnail.ResourceImageThumbnailPlugIn.getContentThumbnail(ResourceImageThumbnailPlugIn.java:45)
    at com.sapportals.wcm.repository.manager.thumbnail.ThumbnailNamespaceManager.getImage(ThumbnailNamespaceManager.java:539)
    at com.sapportals.wcm.repository.manager.thumbnail.ThumbnailNamespaceManager.getCreatedResource(ThumbnailNamespaceManager.java:459)
    at com.sapportals.wcm.repository.manager.thumbnail.ThumbnailNamespaceManager.getContent(ThumbnailNamespaceManager.java:335)
    at com.sapportals.wcm.repository.ContentImpl.internalGetContent(ContentImpl.java:328)
    at com.sapportals.wcm.repository.ContentImpl.<init>(ContentImpl.java:84)
    at com.sapportals.wcm.repository.ResourceImpl.internalGetContent(ResourceImpl.java:3203)
    at com.sapportals.wcm.repository.ResourceImpl.getContent(ResourceImpl.java:1183)
    at com.sapportals.wcm.repository.ResourceImpl.getContent(ResourceImpl.java:1147)
    at com.sapportals.wcm.protocol.webdav.server.WDGetHandler.internalHandle(WDGetHandler.java:319)
    at com.sapportals.wcm.protocol.webdav.server.WDGetHandler.handle(WDGetHandler.java:282)
    at com.sapportals.wcm.protocol.webdav.server.WDServlet.doGet(WDServlet.java:791)
    at com.sapportals.wcm.protocol.webdav.server.WDServlet.service(WDServlet.java:483)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.sapportals.wcm.portal.proxy.PCProxyServlet.service(PCProxyServlet.java:333)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.sapportals.portal.prt.core.broker.ServletComponentItem$ServletWrapperComponent.doContent(ServletComponentItem.java:110)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
    at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
    at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
    at com.sapportals.wcm.portal.connection.KmConnection.handleRequest(KmConnection.java:52)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:524)
    at java.security.AccessController.doPrivileged(AccessController.java:246)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:407)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
    at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
    at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
    at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
    at java.security.AccessController.doPrivileged(AccessController.java:219)
    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172).
    Any help is appreciated !
    Regards, Andreas
    Edited by: Andreas Wachendorfer on Oct 29, 2009 7:05 PM

    Problem solved: JVM Parameter -Djava.awt.headless=true had to be set....

  • Problem with CM repository manager

    Hi
    I am trying to access the documents of file server with CM Repository manger(FSDB).The Current portal version is EP6 SP15.I did configuration for production,Development system.i did exactly same.but it is not working in Development system.i created Network path,cache,CM Repository Manger.where should i see the log file to check the error?
    While Configure CM repository manager,there is no property to specify DB Connectionpool parameter?
    but it is working fine in production system,but not in Development System.
    i selected Auto Checkin/checkout parameter while creating CM repository manager.where should i need to check weather this is working or not?
    i am not able to see the /etc folder in case of development system ,but able to see in production system?
    can anybody helpme out in this regard?
    Prasad

    Hi Julian
    thanks for your quick response.i checked the commponent Monitor.it is giving an error called:"Startup Error:  parameter context is null ".do you have any idea?
    Please help
    Prasad

Maybe you are looking for