This section contains:

Limitations in the K2 Profiler API


Limitations in ODK and Parametric Index (VDK Level)


Limitations in the K2 Organization Developer’s Kit (ODK)


Limitations in OEM Administration API


Limitations in the K2 Profiler API

K2 Profiler Java API cannot take VdkToken Array as input


In the K2 Profiler Java API, the document evaluation cannot take a VdkToken array as input. This functionality does exist in the C API but the Java API does not provide access to VdkToken Array since it not needed.

K2 Profiler Java API only partially supports replication of profile nets


The VProfileNet class allows replication for a profile net (the same profile net alias on multiple K2 Servers) in a restricted way. All requests for profiler administration and query management are forwarded to all the replicas of the profile net.

If one of the calls to a server fails, there is no mechanism to complete the action automatically whenever that K2 Server comes up.

Workaround: A class VProfileNetReplica is provided to perform query management and profiler administration operations on a profile net replica on a particular server. For example, suppose a profile net on a particular server is not functional when a query is added to all the other replicas. You must look at the exceptions thrown by the call made to VprofileNet instance and remember that this action failed on a particular K2 Server. You must then create an appropriate VProfileNetReplica instance for that K2 Server (whenever it comes up) and then add the query only to that replica.

Limitations in ODK and Parametric Index (VDK Level)

Only one collection per parametric index is supported


Only one collection can be associated with a parametric index. Both OdkPiOpen() and mkpi take one collection.

Workaround: Build one parametric index for each collection. Multiple parametric indexes can be simultaneously searched and browsed on K2 Servers and K2 Brokers.

Need to close existing knowledge bases in a session when opening a system topic set


Since VDK does not allow you to open a system topic set once a session is created and a knowledge base is opened in the session, this limitation carries through ODK.

OdkTpsetOpen() has an option closeExKBOk . If this flag is off and there is any knowledge base open in the session, OdkTpsetOpen() will return the error OdkErrTpsetCloseExKBFlagOff .

VdkSession is not managed by ODK


A VdkSession is required to be passed into every ODK suite. Since VdkSession is not thread-safe, this has the following implications and limitations:

Do not share an ODK handle in multiple threads.

Do not open or close a new collection, topic set, or knowledge base while the session is passed into ODK.

Do not close the session while it is being used in ODK.

VDK is started (via VdkSessionNew , VdkCollectionOpen , and so on) before all ODK calls, and stopped (via VdkCollectionClose and VdkSessionFree ) after the parametric index has been closed. One ODK handle per thread, and not shared across threads.

Limitations in the K2 Organization Developer’s Kit (ODK)

Java APIs only, no C APIs


K2 ODK will only publish a Java API interface. C APIs are available for K2 Developer (ODK-VDK) level only.

Workaround: Use Java or write to Library level C interface of K2 Developer.

No viewing from the Index Server


You cannot retrieve documents from the Index Server. The document request will fail.

Workaround: Perform viewing against a K2 Server.

Limitations in OEM Administration API

The OEM API does not accept gateway credentials for indexing secure web sites.


When using the OEM API for indexing, there is no mechanism to pass in gateway credentials that should be used if trying to index a secure web site. This causes indexing a secure web site to fail with authentication related issues.

Workaround: Create a job.auth file in the job directory that will be picked up during indexing and used by K2 Spider to authenticate with secure web sites.

The Java VAdministration OEM API is not COM enabled.


Java classes that are compliant to JDK 1.1 can often be exposed as COM objects. While VAdministration is compliant to JDK 1.1 it has not been explicitly offered as a COM enabled product.