|
Application Messaging
Using an LDAP Server with the Common Messaging InterfaceTo specify a Lightweight Directory Access Protocol (LDAP) server, the following macro variables must be set within your application:
/* required LDAP information */
%let ldap_host=;
/* IP address of the host running LDAP server */
%let ldap_port=;
/* port associated with LDAP service (default=389) */
%let ldap_base=;
/* base of SAS messaging tree within database */
/* authentication information */
%let ldap_dn=;
/* distinguished name for authentication */
%let ldap_pw=;
/* password for authentication */
LDAP Object Class Definitions Required for MessagingThe following LDAP object class definitions are used for application messaging.
objectclass sasContainer
requires
objectClass
allows
cn,
sasComponent,
Description
objectclass sasTransportAlias
requires
objectClass,
sasTransportAliascn,
sasTransportName
objectclass sasQueueAlias
requires
objectClass,
sasQueueAliascn,
sasTransportName,
sasQueueName
objectclass sasMap
requires
objectClass,
sasMapcn,
sasDescriptor
objectclass sasModel
requires
objectClass,
sasModelcn
allows
sasPermanent,
sasMsgPsist,
sasNotice,
sasMaxDepth,
sasMaxMsgl,
sasRequired
objectclass sasMSMQModel
requires
objectClass,
sasMSMQModelcn
allows
sasAuthenticate,
sasBasePriority,
sasJournal,
sasJournalQuota,
sasLabel,
sasPrivLevel,
sasQuota,
sasTransaction,
sasType
objectclass sas-MsgRendModel
requires
objectClass,
sasMsgRendModelcn
allows
sas-msgservice,
sas-msgnetwork,
sas-msgdaemon,
sas-msgcmname,
sas-msgledger,
sas-msgrelayagent,
sas-msgrequestold,
sas-msgsyncledger
Sample LDIF EntriesThe following is a sample of object class definition entries in the LDAP Data Interchange Format (LDIF). This sample specifies the object definitions for the organization, SAS System, transport, queue, aliases, map, and a MSMQ model. After object classes are defined in this file, they are loaded into the LDAP repository by a network administrator. Note: The LDAP repository uses a blank line followed by the distinguished name (DN) statement to indicate start of a definition entry.
dn: o=Alphalite Airways,c=US
objectclass: top
objectclass: organization
o: Alphalite Airways
st: North Carolina
st: NC
postalAddress: 615 Alphalite Airways Dr.
postalCode: 27504
telephoneNumber: (919)123-4545
dn: cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: The SAS System
dn: sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: Common Messaging Abstraction for SAS
Domain Server, MQSeries, and MSMQ
dn: cn=Transports,sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: Transport definitions
dn: sastransportaliascn=transport1,cn=Transports,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasTransportAlias
sastransportaliascn: transport1
sastransportname: MQSeries
dn: sastransportaliascn=transport2,cn=Transports,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasTransportAlias
sastransportaliascn: transport2
sastransportname: MSMQ
dn: sastransportaliascn=transport3,cn=Transports,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasTransportAlias
sastransportaliascn: transport3
sastransportname: Rendezvous
dn: sastransportaliascn=transport4,cn=Transports,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasTransportAlias
sastransportaliascn: transport4
sastransportname: Rendezvous-CM
dn:cn=Queues,sasComponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: Queue definitions
dn: sasqueuealiascn=queue1,cn=Queues,
sascomponent=sasMessaging¹,cn=SAS,
o=Alphalite Airways,c=US
objectclass: top
objectclass: sasQueueAlias
sasqueuealiascn: queue2
sastransportname: MQSeries
sasqueuename: QMgr:Queue
dn: sasqueuealiascn=queue2,cn=Queues,
sascomponent=sasMessaging¹,cn=SAS,
o=Alphalite Airways,c=US
objectclass: top
objectclass: sasQueueAlias
sasqueuealiascn: queue2
sastransportname: MSMQ
sasqueuename: pathname
dn: sasqueuealiascn=queue3,cn=Queues,
sascomponent=sasMessaging¹,cn=SAS,
o=Alphalite Airways,c=US
objectclass: top
objectclass: sasQueueAlias
sasqueuealiascn: queue3
sastransportname: Rendezvous
sasqueuename: subject name
dn: cn=Maps,sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: Map definitions
dn: sasmapcn=map1,cn=Maps,
sascomponent=sasMessaging¹,cn=SAS,
o=Alphalite Airways,c=US
objectclass: top
objectclass: sasMap
sasmapcn: map1
sasdescriptor: type,offset,length;type,offset,length;...
dn: cn=Models,sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasContainer
description: Model definitions
dn: sasmsmqmodelcn=model1,cn=Models,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasMSMQModel
sasmsmqmodelcn: model1
sasauthenticate: none,always
sasbasepriority: short
sasjournal: none,always
sasjournalquota: unsigned long
saslabel: queue description
sasprivlevel: none,body,optional
sasquota: unsigned long
sastransaction: none,always
sastype: binary GUID
dn: sas-msgRendModelcn=model2,cn=Models,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasMsgRendModel
sas-msgRendModelcn: model2
sas-msgService: name or port number
sas-msgNetwork: name or identifier
sas-msgdaemon: socket number
dn: sas-msgRendModelcn=model3,cn=Models,
sascomponent=sasMessaging¹,
cn=SAS,o=Alphalite Airways,c=US
objectclass: top
objectclass: sasMsgRendModel
sas-msgRendModelcn: model3
sas-msgcmname: name
sas-msgledger: filename
sas-msgrelayagent: name
sas-msgrequestold: yes,no
sas-msgsyncledger: yes,no
Important Note¹Prior to Version 8 (TS M1), the name of the sascomponent was "Messaging." Starting with Version 8 (TS M1), the sascomponent is renamed to "sasMessaging." In order to accommodate this change, a new macro variable, cmqmsgcomp, has been defined in Version 8 (TS M1). If you are writing programs (using Integration Technologies Version 8 (TS M1) or later) that will access an LDAP server that was configured for SAS Integration Technologies using the containers.ldif file supplied with Version 8.0 or earlier, then you need to issue the following SAS macro statement before running any programs that access that LDAP directory through the Common Messaging interface: %let cmqmsgcomp=Messaging; This macro variable enables your SAS programs running on Version 8 (TS M1) or later to access definitions that were created using the sascomponent name of "Messaging." However, any new definitions that are created will be stored in the cn=sasMessaging container. Note: SAS Integration Technologies Version 8 (TS M1) and higher does not provide any mechanism for changing or deleting definitions that are stored in the cn=Messaging container. If you created LDAP entries for the common interface under SAS Integration Technologies Version 8.0 or earlier and you need to alter or delete these definitions, then you will need to use the administrative tools supplied by your LDAP server vendor. Setting the LDAP Search BaseTo interface with the LDAP directory successfully, you need to set the search base to the start of the SAS tree in the LDAP object hierarchy. For example, for the sample hierarchy shown above, the macro statement to set the search base correctly would be: %let ldap_base=cn=SAS,o=Alphalite Airways,c=US; However, if you intend to administer (update) the LDAP with the CALL routines provided (SET***, DELETE***), you will need to set the base to a position just below the start of the SAS tree hierarchy to ensure that all DNs (distinguished names) are generated appropriately. For example, %let ldap_base=o=Alphalite Airways,c=US; |