webMethods 8.2 LDAP connect

We have an issue migrating from webMethods 7.0 to 8.2 for LDAP authentication.

We were using pub.ldap:connect to connect to LDAP IN 7.0, but when we moved to 8.2 we could not find "connect"service.
Is there any alternative to connect in 8.2?

Looking for alternative and usage for pub.ldap:connect and pub.ldap:search

Got pub.client.ldap:search (Just tried) as alternative
This helps to connect and search
However we want results to be returned like a stringList

However while trying to retrieve object its not helping
Sample Filter Query
distinguishedName=CN=groupName,OU=GROUPS,OU=RYE,DC=na,DC=domainName,DC=net)

ReturnAttribute:
member

Return type is used as Object
We are not able to get member as StringList

Instead series of strings with same name (member) under Results document type.

Any help is greatly appreciated.This is bit urgent for us. Thank you.

The built-in service pub.ldap was deprecated and removed in Integration Server 8.x.

You may use pub.client.ldap:search to connect, search and disconnect instead. You can read more about this service in 8.0 built-in services Reference on Chapter 3
http://techcommunity.softwareag.com/ecosystem/documentation/webmethods/wmsuites/wmsuite8_ga/Developer/8-0-SP1_Integration_Server_Built-In_Services_Reference.pdf

Deprecate notice found for this service
Version 7.1.1 Built-in service Reference, Chapter 13
http://techcommunity.softwareag.com/ecosystem/documentation/webmethods/wmsuites/wMdoc/_webM_suite_71/Developer/Developer%207.1.1/webMethods%20Integration%20Server%20Built-In%20Services%20Reference%207.1.1.pdf

It stated:
Important! The services in this folder have been deprecated. To access and update
information on an LDAP directory server, use the services in the client.ldap folder
instead.

Version 8.0 Readme file, page 140
http://techcommunity.softwareag.com/ecosystem/documentation/webmethods/wmsuites/wmsuite8_ga/readme/IntegrationServer_8-0_SP1_readme.pdf

As for your question regarding solution on the returned result of pub.client.ldap:search, you may open a Service Incident in Empower to get support, and request for a wrapper service as workaround.

i want to close LDAP connection explicitly, i don’t find any built in service in Wmpublic to close connection only…can anyone tell me how can i close connection. i dont want to use close property in services(client.ldap.search,client.ldap.bind)… waiting for answer…Thanks in advance

Formerly it used to be handled via ldap:disconnect.

But it sounds only ldap:search thru is the only work around and should work ideally:

Resolution:

The user can use the pub.client.ldap:search service to replace the previous flow services outlined above.

When set the “close” flag to true, it would handle the LDAP connection close action as in former pub.ldap:disconnect service.


Why are you not wanting to use search parameter is that not working as expected in 822?

HTH,
RMG

Please note KB article on Empower:
1744293 - LDAP built-in services in IS do not close TCP connections when Close parameter is set to Yes

and take in consideration extended property

watt.server.ldap.cleanContext

Shmuel Coller
webMethods Global Support EMEA

Interesting.Thanks very much Shmuel for more update on this.

But I couldn’t find this KB Article#1744293 in my initial search.

TIA,
RMG

Sorry, I sent it to review and publishing - and now realize it was not yet published.
Mistake, Shmuel

make sense.

So is the extended parameter still to be used to handle this issue?

Yes this extended setting is needed with value true in order for actual session to be closed in TCP/IP stack
regards, Shmuel

Thanks for your more clarification on this topic! :smiley:

Thanks Shmuel and RMG for reply …its really helpful for me

RMG, I am using pub.client.ldap:search in loop and my search is based on few values, if first time search is not successful(I don’t find entry) then I have to search with second value and so on… in between I have to preserve connection else i have bind connection again and it leads to extra overheads for binding to LDAP. That’s why after finishing my search, I want to close connection explicitly. :frowning:

Alternatively I can use pub.client.ldap:search after finishing my search (out of loop) to close connection but i belive it takes extra overheads rather directly close connection. Please suggest what could be best approach to use pub.client.ldap:search to close connection where actually i just need to close connection only not for search…

Regards,
Vpn

Yes you can use that search close along with extended setting and after you come out of the loop just fine:

Please test the scenario and check if you see any issues in the logs or LDAP side aspects.

HTH,
RMG

RMG, its working good…

but can I close connection by using custom Code, can you tell me custom code(java code) to close connection explicitly.

I am not sure why do you want to go custom route.what is the issue when it is working fine?

Sorry anyways I don’t have any code handy…please check the wM Java API.

RMG, in same service, i am calling pub.client.ldap.search three times, it taking time for searching thats why i don’t want to again call search service to just close connection, if i call search service to close connection, i have pass madetory inputs and based on it, service search then close connection, so it is overhead unnecssary and impact service performance.

i tried to do custom code but i am not able to find exact class name for object returned by pub.client.ldap.bind so that i can type cast object to LDAPContext and call close() to close connection. It seems pub.client.ldap:bind service is returning String kind of Object(pub.client.ldap$Handle), i am not sure is it String Object, but when i am trying to typecast it to LDAPContext then i am getting error like String object cant be cast to LDAPContext…

can you help to reach on conclusion whether we can achieve closing connection by custom code or it is restriction of webMethods…

Please suggest.

I would say please take up this issue with SAG support on the performance aspect when using search service for just closing connection as opposed to formerly dealt with disconnect service.

Having custom code is over head when you are not sure what cast objects you are dealing with and they can provide you better way handling the close().

HTH,
RMG

hi guys .

Given a functional id i need to search the ldap server to return a list of LDAP groups that id is a part of . what should i do ? can you please help me out

We have an issue with LDAP BIND & SEARCH functionality…

we are doing migration project wM 7.2 - wM 8.2 here we are using LDAP functionality in 7.2 had LDAP connect & Disconnect functionality when we are doing migration only have alternative functionalities were BIND & Search as per this we have implemented.

But , when we ran the service it would be time taking time (huge time) on both LDAP BIND & SEARCH… please give me the valid comments on this.

Hi,

We have migrated services from 7.1 to 8.2 and are using pub.client.ldap.bind and search.
The functionality is working fine but in PROD env, we are getting frequent errors as in the attachment.

javax.naming.PartialResultException.

Since the list of elements to be searched in huge as compared to testing env, may be its the reason but I am not sure

Does any one have an idea on how to solve this issue?

Thanks,
Priya

ErrorLDAP.JPG

Priya,

Please do a quick look at this Empower article and it similar related to the exception:

https://empower.softwareag.com/sl24sec/SecuredServices/KCFullTextASP/viewing/view.asp?KEY=084286-5616727&DSN=PIVOTAL&DST=TCD&HL=1&QUERY=javax.naming.PartialResultException.&SessionID=642962463

HTH,
RMG