![]() ![]() |
|
Open Client Developer's Guide | |
Search | Index | Glossary | | |
![]() |
|
![]() |
![]() |
![]() |
Developing with IDM COM Objects and JiGlue in the .NET EnvironmentOpen Client is built on top of FileNet IDM Web Services 3.3 and Microsoft ASP.NET. This configuration enables developers to leverage IDM COM objects when writing custom Web applications. Customers may implement IDM COM objects in ASP.NET applications that use the Single Threaded Apartment (STA) model, which is required by FileNet IDM Objects. Support for using IDM COM objects in other environments, such as .NET remoting, Microsoft Windows Services, Web services, or VB.NET, is not yet available. However, FileNet is working closely with Microsoft to determine the future strategy for delivering data services in .NET. The following sections describe points to consider when developing with IDM COM objects and .NET. For a list of the IDM COM objects currently used in Open Client, see COM Objects Implemented in Open Client. PerformanceMinimize COM CallsCOM calls from .NET require marshaling, which can negatively impact application performance. To avoid this condition, COM calls should be minimized by using data caching and ADO whenever possible. Perform Single Thread ADO SearchesWhen executing a search using ADO, set ASPCOMPAT="True" in each ASPX page. Threading ModelFileNet IDM Objects are STAFileNet IDM COM Objects run under the STA model. Therefore, in order to call FileNet IDM Objects, the ASP.NET Web application must utilize the STA threading model. To ensure that the STA model is in use, set ASPCOMPAT="True" in all ASPX pages that intend to call IDM Objects. Note that the ASPCOMPAT flag defaults to False when no other value is specified. JiGlue is MTAJiGlue is used in Process integration to bridge from COM to Java, and is the only COM object that runs under the Multi-threaded Apartment model (MTA). For this reason, the ASPCOMPAT flag must be set to False in all ASPX pages that intend to use JiGlue. Setting ASPCOMPAT="True" when using JiGlue can cause random "Invalid callee" exceptions (this is a known ASP.NET JiGlue issue).
Unified LogonThe thread that is responsible for executing the logon operation must run in the NT account security context. The following two options are available for impersonation:
The recommendation is to not set <impersonate=true> in web.config. Instead, use dynamic impersonation during the logon operation, as well as other operations like adding a document or updating properties. Keep in mind that these options only apply to the unified logon scenario. Known IssuesDo Not Type-Cast an IDM Generic ObjectAn IDM generic object cannot be type-cast into another IDM object, such as a document, folder or stored search object. This is a known .NET issue (it is understood that Microsoft will supply a fix for this in the next .NET service release). To workaround this issue, use the hidden IFnxxxDual interface of the object in the typecast statement. For example:
Do Not Combine Multiple Calls to JiGlue in .NETMultiple method calls to JiGlue cannot be combined in a single .NET statement, such as:
While the above statement may only fail in some cases, when a failure does occur, the resulting symptoms may be very obscure and can cause performance problems. Do Not Combine Multiple COM Calls in .NETMultiple COM calls cannot be combined in a single .NET statement, such as:
Note that failure may only occur in some cases.
|
![]() |
|