Identity Broker Forum

Welcome to the community forum for Identity Broker.

Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

0
Fixed

Cicso UCM IdB connector - Query request too large

Carol Wapshere 7 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 9

Attempting first imports into IdB. Using the exact same config as Test however in test there are only 60 people in UCM. In prod there are over 7000. I'm getting this in the IdB log:

<SOAP-ENV:Body xmlns:SOAP-ENV=<span class="code-quote">""http:<span class="code-comment">//schemas.xmlsoap.org/soap/envelope/"</span>">
</span>  <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>Query request too large. Total rows matched: 19317. Suggestive Row Fetch: less than 1514</faultstring>
    <detail>
      <axl:Error xmlns:axl=<span class="code-quote">""http:<span class="code-comment">//www.cisco.com/AXL/API/7.1"</span>">
</span>        <axl:code>5011</axl:code>
        <axl:message>Query request too large. Total rows matched: 19317. Suggestive Row Fetch: less than 1514</axl:message>
        <request>executeSQLQuery</request>
      </axl:Error>
    </detail>
  </SOAP-ENV:Fault>
</SOAP-ENV:Body>

AdapterEngine.extensibility.config.xml
ConnectorEngine.extensibility.config.xml
0
Answered

Ability to specify SQL query for CISCO UCM IdB Connector

Mark Southwell 8 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 5

Hi guys!

Is there any way to override the default queries the Cisco UCM IdB connector presents to the Cisco AXL service? There appears to be two modes of operation:
1. sqlTrust=True communicator option set results in the executeSQLQuery AXL request being sent with "select * from <object>".
2. sqlTrust=False communicator option set results in an AXL "get<object>" request being sent for the specified object. SQL queries are performed internally based on the object requested.

Option 1 returns too few attributes, option 2 is too verbose and when executed on End User objects takes as much time to process 1 user as operation mode 1 does in processing all users in my test environment.

If we could pass any SQL query to the AXL service via the executeSQLQuery AXL request the connector could be customised to return exactly what we need.

The attached files demonstrate the functionality and what is actually being processed by the AXL service when these requests come in. sqlTrust=False causes a heap of unnecessary queries being made to the SQL database by the AXL service, slowing down response.


sqlTrustFalse.txt
sqlTrustTrue.txt
0
Completed

CUCM Users Connector - Null Reference Exception when exporting without groupNames field.

Richard Green 5 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 4

Hi Guys,

While testing last night, I encountered an error with the CUCM User connector.
If an export is made without the 'groupNames' field present, it throws a null reference exception.

If the field is present, the export run's without error and behaves as expected.

I expect this will be straightforward to track down, but regardless, here is the full stack trace from the IDB log:

Save entities to connector failed.
Save entities [Count:1] to connector CUCM User Connector failed with reason Object reference not set to an instance of an object.. Duration: 00:00:00.3788820
Error details:
System.NullReferenceException: Object reference not set to an instance of an object.
 at Unify.Framework.CUCMUserCommunicator.SetAdditionalUpdateFields(XElement updateElement, IConnectorEntity entity)
 at Unify.Framework.CUCMCommunicatorBase`1.SetElementFromEntity(XElement requestElement, IConnectorEntity entity, IEnumerable`1 ignoredFields, Action`2 setFieldsAction)
 at Unify.Framework.CUCMCommunicatorBase`1.CreateUpdateRequest(IConnectorEntity entity)
 at Unify.Framework.CUCMCommunicatorBase`1.Update(IConnectorEntity entity)
 at Unify.Framework.CiscoReadWriteConnectorBase`1.UpdateEntity(IConnectorEntity entity)
 at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
 at Unify.Product.IdentityBroker.EventNotifierUpdatingConnectorDecorator.UpdateEntities(IEnumerable`1 entities)
 at Unify.Product.IdentityBroker.Adapter.UpdateEntities(IEnumerable`1 entities, Boolean reflect)
 at Unify.Product.IdentityBroker.AdapterNotifierDecoratorBase`1.UpdateEntity(IAdapterEntity entityToSave)
 at Unify.Product.IdentityBroker.AdapterNotifierDecoratorBase`1.UpdateEntity(IAdapterEntity entityToSave)
 at Unify.Product.IdentityBroker.LDIFAdapterBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter)
 at SyncInvokeExportChanges(Object , Object[] , Object[] )
 at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
 at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
 at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

Let me know if I can provide further assistance.

0
Answered

Possibility of Adding AXL to SQL Table Attribute Name Correlation in CISCO UCM connector.

Mark Southwell 8 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 2

Hi guys,

I've been working with the CISCO UCM connector, one thing I've found is import failures can occur when using the sqlTrust=False communicator option. The issue is the AXL attribute names vary to the names used in the SQL tables.

Name variances are taken into consideration when configuring AXL objects and SQL tables in the connector communicator via the AXLName and SQLName options. However attribute names also vary and the connector first does an AXL executeSQLquery to get all objects, then performs a native AXL Get request to extract data, using the same attribute name for both.

Example:

<entitySchema>
<field name="name" validator="string" key="true" required="true" readonly="true" />
</entitySchema>

Inital request to AXL:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><axlapi:executeSQLQuery xmlns:axlapi="http://www.cisco.com/AXL/API/7.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><sql>SELECT name FROM device</sql></axlapi:executeSQLQuery></SOAP-ENV:Body></SOAP-ENV:Envelope>

Subsequent request to AXL (per object received from first query)

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><axl:getDeviceProfile xmlns:axl="http://www.cisco.com/AXL/API/7.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><name>MTP_2</name></axl:getDeviceProfile></SOAP-ENV:Body></SOAP-ENV:Envelope>

Error returned:

ERROR http-8443-9 axl.AxlValidator - org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'name'. One of '

{"":profileId, "":profileName}

' is expected

The subsequent AXL request failes as it requires "profileName" instead of "name" as the "profileName" attribute is the AXL equivalent of the SQL "name" attribute . If profileName is used in entitySchema the first query fails as the attribute is not found in the SQL table.

0
Answered

Error writing to Cisco

Peter Wass 7 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 7

Occasionally the CISCO connector produces the error below. At the moment its affected 4 out of 256. I will try those 4 again to see if its random and report more.

Error:

20120401,07:52:20,Cisco communicator,Update,Error,"Exception occured after [00:00:00.1250000] duration.

System.Exception: Response does not contain the {http://www.cisco.com/AXL/API/7.1}updateDeviceProfileResponse element:

<SOAP-ENV:Body xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">
  <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>A syntax error has occurred.</faultstring>
    <detail>
      <axl:Error xmlns:axl=""http://www.cisco.com/AXL/API/7.1"">
        <axl:code>-201</axl:code>
        <axl:message>A syntax error has occurred.</axl:message>
        <request>updateDeviceProfile</request>
      </axl:Error>
    </detail>
  </SOAP-ENV:Fault>
</SOAP-ENV:Body>
   at Unify.Framework.CiscoCommunicatorBase`1.CheckUpdateResponse(Stream responseStream)
   at Unify.Framework.CiscoCommunicatorBase`1.UpdateEntity(IConnectorEntity entity)
   at Unify.Framework.CiscoCommunicatorBase`1.Update(IConnectorEntity entity)",Verbose
20120401,07:52:20,Save entities to connector failed.,Connector,Warning,"Save entities [Count:1] to connector Cisco Device Profile Connector failed with reason Response does not contain the {http://www.cisco.com/AXL/API/7.1}updateDeviceProfileResponse element:

<SOAP-ENV:Body xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">
  <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>A syntax error has occurred.</faultstring>
    <detail>
      <axl:Error xmlns:axl=""http://www.cisco.com/AXL/API/7.1"">
        <axl:code>-201</axl:code>
        <axl:message>A syntax error has occurred.</axl:message>
        <request>updateDeviceProfile</request>
      </axl:Error>
    </detail>
  </SOAP-ENV:Fault>
</SOAP-ENV:Body>. Duration: 00:00:00.6093750
Error details:
System.Exception: Response does not contain the {http://www.cisco.com/AXL/API/7.1}updateDeviceProfileResponse element:

<SOAP-ENV:Body xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">
  <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>A syntax error has occurred.</faultstring>
    <detail>
      <axl:Error xmlns:axl=""http://www.cisco.com/AXL/API/7.1"">
        <axl:code>-201</axl:code>
        <axl:message>A syntax error has occurred.</axl:message>
        <request>updateDeviceProfile</request>
      </axl:Error>
    </detail>
  </SOAP-ENV:Fault>
</SOAP-ENV:Body>
   at Unify.Framework.CiscoCommunicatorBase`1.CheckUpdateResponse(Stream responseStream)
   at Unify.Framework.CiscoCommunicatorBase`1.UpdateEntity(IConnectorEntity entity)
   at Unify.Framework.CiscoCommunicatorBase`1.Update(IConnectorEntity entity)
   at Unify.Framework.CiscoReadWriteConnectorBase`1.SaveEntity(IConnectorEntity entity)
   at Unify.Framework.CiscoReadWriteConnectorBase`1.SaveEntities(IEnumerable`1 entities)
   at Unify.Framework.ConnectorToWritingConnectorBridge.SaveEntities(IEnumerable`1 entities)
   at Unify.Framework.EventNotifierWritingConnectorDecorator.SaveEntities(IEnumerable`1 entities)
   at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
   at Unify.Framework.Adapter.SaveEntity(IAdapterEntity entity, Boolean reflect)
   at Unify.Framework.CompositeAdapter.SaveEntity(IAdapterEntity entity)
   at Unify.Framework.AdapterNotifierDecorator.SaveEntity(IAdapterEntity entityToSave)
   at Unify.Framework.LDIFAdapter.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId)
   at Unify.Framework.LDIFAdapterServiceHostDecorator.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId)
   at SyncInvokeExportAdapterEntity(Object , Object[] , Object[] )
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)",Normal
0
Fixed

Cannot update phoneProfile

Peter Wass 7 years ago in UNIFYBroker/Cisco Unified Communications Manager • updated by anonymous 4 years ago 2

This error was received when trying to update the phoneProfiles field on the user. Do I need to use the guid or can I use the string representation of the device

20120401,08:54:16,Cisco communicator,Update,Error,"Exception occured after 00:00:00 duration.

System.NullReferenceException: Object reference not set to an instance of an object.
at Unify.Framework.CiscoUserCommunicator.SetAdditionalUpdateFields(XElement updateElement, IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.SetElementFromEntity(XElement requestElement, IConnectorEntity entity, IEnumerable`1 ignoredFields, Action`2 setFieldsAction)
at Unify.Framework.CiscoCommunicatorBase`1.CreateUpdateRequest(IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.UpdateEntity(IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.Update(IConnectorEntity entity)",Verbose
20120401,08:54:16,Save entities to connector failed.,Connector,Warning,"Save entities Count:1 to connector Cisco User Connector failed with reason Object reference not set to an instance of an object.. Duration: 00:00:00.4531250
Error details:
System.NullReferenceException: Object reference not set to an instance of an object.
at Unify.Framework.CiscoUserCommunicator.SetAdditionalUpdateFields(XElement updateElement, IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.SetElementFromEntity(XElement requestElement, IConnectorEntity entity, IEnumerable`1 ignoredFields, Action`2 setFieldsAction)
at Unify.Framework.CiscoCommunicatorBase`1.CreateUpdateRequest(IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.UpdateEntity(IConnectorEntity entity)
at Unify.Framework.CiscoCommunicatorBase`1.Update(IConnectorEntity entity)
at Unify.Framework.CiscoReadWriteConnectorBase`1.SaveEntity(IConnectorEntity entity)
at Unify.Framework.CiscoReadWriteConnectorBase`1.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.ConnectorToWritingConnectorBridge.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.EventNotifierWritingConnectorDecorator.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
at Unify.Framework.Adapter.SaveEntity(IAdapterEntity entity, Boolean reflect)
at Unify.Framework.CompositeAdapter.SaveEntity(IAdapterEntity entity)
at Unify.Framework.AdapterNotifierDecorator.SaveEntity(IAdapterEntity entityToSave)
at Unify.Framework.LDIFAdapter.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId)
at Unify.Framework.LDIFAdapterServiceHostDecorator.ExportAdapterEntity(IAdapterEntity adapterEntity, Guid adapterId)
at SyncInvokeExportAdapterEntity(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)",Normal