I have implemented a solution based on Novell/NetIQs Identity Manager's
SOAP driver. There is a driver health job too and a driver health
configuration on my SOAP driver.

There is a query query-driver-ident at driver startup and regulary when
the driver is running. The question is: why is the query answered by the
system when the driver starts and why is it passed through when the
driver is running? When the query is passed through: what is the
connected system expected to reply?

Details follow:

When the driver starts I see the following trace which is quite ok:

Code:
--------------------

[time]:KMS ST:Received state change event.
[time]:KMS ST:Transitioned from state '%+C%14CStopped%-C' to state '%+C%14CStarting%-C'.
[time]:KMS ST:Successfully processed state change event.
[time]:KMS ST:Submitting identification query to subscriber shim:
[time]:KMS ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.0.1.0">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<query event-id="query-driver-ident" scope="entry">
<search-class class-name="__driver_identification_class__"/>
<read-attr/>
</query>
</input>
</nds>
[time]:KMS ST:SubscriptionShim.execute() returned:
[time]:KMS ST:
<nds dtdversion="2.0">
<source>
<product build="20110402_112430" instance="Codex-KMS" version="3.5.6">Identity Manager Driver for SOAP</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<instance class-name="__driver_identification_class__">
<attr attr-name="driver-id">
<value type="string">SOAP</value>
</attr>
<attr attr-name="driver-version">
<value type="string">3.5.6</value>
</attr>
<attr attr-name="min-activation-version">
<value type="int">3</value>
</attr>
</instance>
</output>
</nds>

--------------------

However, when the driver is running and the driver health job is
activated the trace is as follows:


Code:
--------------------

[time]:KMS ST:Injecting User Agent XDS command document into Subscriber channel.
[time]:KMS ST:Applying command transformation policies.
[time]:KMS ST:Applying policy: ...
[time]:KMS ST:Policy returned:
[time]:KMS ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.0.1.0">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<query event-id="query-driver-ident" scope="entry">
<search-class class-name="__driver_identification_class__"/>
<read-attr/>
</query>
</input>
</nds>
[time]:KMS ST:Filtering out notification-only attributes.
[time]:KMS ST:Fixing up association references.
[time]:KMS ST:Applying schema mapping policies to output.
[time]:KMS ST:Applying policy: %+C%14CKMS-Mapping%-C.
[time]:KMS ST: No mapping for class-name '__driver_identification_class__'.
[time]:KMS ST:Applying output transformation policies.
[time]:KMS ST:Applying XSLT policy: %+C%14CSOAP+Output+Transform%-C.
[time]:KMS ST: %13Cxsl:message -> Output: Add SOAP Headers
[time]:KMS ST:Policy returned:
[time]:KMS ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.0.1.0">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spml="urnasis:names:tc:SPML:1:0">
<soap-env:Body>
<query event-id="query-driver-ident" scope="entry">
<search-class class-name="__driver_identification_class__"/>
<read-attr/>
</query>
</soap-env:Body>
</soap-env:Envelope>
</input>
</nds>
[time]:KMS ST:Applying XSLT policy: %+C%14CSPML+Output+Transform%-C.
[time]:KMS ST: %13Cxsl:message -> Output: Convert XDS to SPML
[time]:KMS ST:Policy returned:
[time]:KMS ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.0.1.0">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spml="urnasis:names:tc:SPML:1:0">
<soap-env:Body>
<searchRequest derefAliases="neverDerefAliases" sizeLimit="1000">
<filter>
<and>
<equalityMatch name="objectclass">
<value>__driver_identification_class__</value>
</equalityMatch>
</and>
</filter>
<attributes>
<attribute name="1.1"/>
</attributes>
<operation-data parent-node-1="searchResponse">
<return-to-me command="query" event-id="query-driver-ident" scope="entry"/>
</operation-data>
</searchRequest>
</soap-env:Body>
</soap-env:Envelope>
</input>
</nds>
[time]:KMS ST:Submitting document to subscriber shim:
[time]:KMS ST:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.0.1.0">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spml="urnasis:names:tc:SPML:1:0">
<soap-env:Body>
<searchRequest derefAliases="neverDerefAliases" sizeLimit="1000">
<filter>
<and>
<equalityMatch name="objectclass">
<value>__driver_identification_class__</value>
</equalityMatch>
</and>
</filter>
<attributes>
<attribute name="1.1"/>
</attributes>
<operation-data parent-node-1="searchResponse">
<return-to-me command="query" event-id="query-driver-ident" scope="entry"/>
</operation-data>
</searchRequest>
</soap-env:Body>
</soap-env:Envelope>
</input>
</nds>
[time]:KMS ST:KMS: Value of boolean flag 'remove-existing' is : false
[time]:KMS ST:KMS: HTTPSubscriberTransport.send()
[time]:KMS ST:KMS: ...
[time]:KMS ST:SubscriptionShim.execute() returned:
[time]:KMS ST:
<nds dtdversion="2.0">
<source>
<product build="20110402_112430" instance="Codex-KMS" version="3.5.6">Identity Manager Driver for SOAP</product>
<contact>Novell, Inc.</contact>
</source>
<output>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<spml:searchResponse error="urnasis:names:tc:SPML:1:0#unsupportedOperation" requestID="rid-2abd6523-d4c6-45c2-9d54-3448bb10aeb7" result="urnasis:names:tc:SPML:1:0#failure" xmlns:dsml="urnasis:names:tcSML:2:0:core" xmlns:spml="urnasis:names:tc:SPML:1:0">
<spml:errorMessage>UNSPECIFIED_ERROR</spml:errorMessage>
</spml:searchResponse>
</SOAP-ENV:Body>
<operation-data parent-node-1="searchResponse" xmlns="urnasis:names:tc:SPML:1:0">
<return-to-me command="query" event-id="query-driver-ident" scope="entry"/>
</operation-data>
</SOAP-ENV:Envelope>
</output>
</nds>

--------------------


The error "UNSPECIFIED_ERROR" is generated by my application on the web
service end point which is not prepared for this query.

Thank you
Michael

See http://tinyurl.com/pco4nry for the same question on SO.


--
mgruebsch
------------------------------------------------------------------------
mgruebsch's Profile: https://forums.netiq.com/member.php?userid=5901
View this thread: https://forums.netiq.com/showthread.php?t=49433