Persistent search using system.directoryservices.protocols

My goal is to develop an application in VB.NET that monitors eDirectory
using an LDAP persistent search. As user objects are added, moved,
renamed and deleted in eDirectory, the program will construct an event
notification in XML format and send it to an email account for
processing by other programs.
I've tried implementing the above functionality using the now
unsupported Novell Internet Directory ActiveX control (NWIDir), which
supports a PersistentSearch method and change notification via a
DirectoryModified event. But have found that it will only run for a few
minutes and then crashes either when run in the VB6 IDE or as an
executable. Since the these ActiveX controls are now unsupported (a
real shame, since they offer AMAZING functionality and INCREDIBLE ease
of use), I decided to go with a pure VB.NET solution.
I settled on using the System.DirectoryServices.protocols name space
and have tried to implement a persistent search with the following code:
Dim error_message As String = ""
Dim ldapcon As LdapConnection = LDAP_Connect(error_message)
If ldapcon Is Nothing Then
'Failed to connect to the ldap server.
MessageBox.Show("Failed to connect to ldap server,
Exception: " & error_message)
Exit Sub
End If
Dim attributesList() As String = {"cn", "SSN", "sn",
"givenname", "initials", "l", "ou", "telephonenumber",
"facsimiletelephonenumber", "title", "description", "uid",
"logindisabled", "logintime", "passwordexpirationtime",
"passwordexpirationinterval"}
Dim ctrlData As Byte() = BerConverter.Encode("{ibb}", New
Object() {1, True, True})
Dim persistentSearchControl As New
DirectoryControl("2.16.840.1.113730.3.4.3", ctrlData, True, True)
Dim searchRequest As New SearchRequest("o=oes",
"(&(objectclass=inetorgperson)(cn=*))",
System.DirectoryServices.Protocols.SearchScope.Sub tree, attributesList)
searchRequest.Controls.Add(persistentSearchControl )
Dim asyncCallBack As New AsyncCallback(AddressOf
PersistentSearchCallBack)
Dim timeSpan As New TimeSpan(1, 0, 0, 0, 0)
ldapcon.BeginSendRequest(searchRequest, timeSpan,
PartialResultProcessing.ReturnPartialResults, asyncCallBack,
searchRequest)
Here's my Asynch callback subroutine definition:
Sub PersistentSearchCallBack(ByVal ar As IAsyncResult)
End Sub
Here's my function library that I developed for connecting to
eDirectory VIA SSL just for reference:
Function LDAP_Connect(ByRef Error_Message As String) As
LdapConnection
'This function connects to an LDAP server and returns an
LDAPConnection object.
'If a connection cannot be established, the function will
return Nothing, and the
'Error_Message parameter will be set to the error returned by
the LDAP server.
Error_Message = ""
Try
Dim ldapcon As LdapConnection = New LdapConnection(New
LdapDirectoryIdentifier(LDAP_Server_IP & ":" & LDAP_Port), New
System.Net.NetworkCredential(LDAP_Authentication_D N, ldap_Password))
ldapcon.SessionOptions.SecureSocketLayer = True
ldapcon.SessionOptions.VerifyServerCertificate = New
VerifyServerCertificateCallback(AddressOf ServerCallback)
ldapcon.AuthType = AuthType.Basic
ldapcon.Bind()
Return ldapcon
Catch ex As Exception
'Failed to bind to ldap server.
Error_Message = ex.Message.ToString
Return Nothing
End Try
End Function
Public Function ServerCallback(ByVal connection As LdapConnection,
ByVal certificate As
System.Security.Cryptography.X509Certificates.X509 Certificate) As
Boolean
'Validate that the exchanged public keys match each other.
Try
Dim expectedCert As X509Certificate = New
X509Certificate(LDAP_SSL_Certificate)
If expectedCert.GetRawCertDataString =
certificate.GetRawCertDataString Then
Return True
Else
Return False
End If
Catch ex As Exception
'Certificate could not be loaded.
Return False
End Try
End Function
When I run the code, I get an the following error message:
The server does not support the control. The control is
critical.
Any help from someone who has successfully done an LDAP persistent
search against eDirectory using the System.DirectoryServices.Protocols
name space would be greatly appreciated, I've been trying to figure this
out in my spare time for a few weeks now. Thanks in advance!
jstaffor
jstaffor's Profile: http://forums.novell.com/member.php?userid=18218
View this thread: http://forums.novell.com/showthread.php?t=414012

On 6/23/2010 8:03 AM, Michael Bell wrote:
> On 6/23/2010 7:06 AM, jstaffor wrote:
>>
>> My goal is to develop an application in VB.NET that monitors eDirectory
>> using an LDAP persistent search. As user objects are added, moved,
>> renamed and deleted in eDirectory, the program will construct an event
>> notification in XML format and send it to an email account for
>> processing by other programs.
>>
>> I've tried implementing the above functionality using the now
>> unsupported Novell Internet Directory ActiveX control (NWIDir), which
>> supports a PersistentSearch method and change notification via a
>> DirectoryModified event. But have found that it will only run for a few
>> minutes and then crashes either when run in the VB6 IDE or as an
>> executable. Since the these ActiveX controls are now unsupported (a
>> real shame, since they offer AMAZING functionality and INCREDIBLE ease
>> of use), I decided to go with a pure VB.NET solution.
>>
>> I settled on using the System.DirectoryServices.protocols name space
>> and have tried to implement a persistent search with the following code:
>>
>>
>> ************************************************** *******
>> Dim error_message As String = ""
>> Dim ldapcon As LdapConnection = LDAP_Connect(error_message)
>>
>> If ldapcon Is Nothing Then
>> 'Failed to connect to the ldap server.
>> MessageBox.Show("Failed to connect to ldap server,
>> Exception: "& error_message)
>> Exit Sub
>> End If
>> Dim attributesList() As String = {"cn", "SSN", "sn",
>> "givenname", "initials", "l", "ou", "telephonenumber",
>> "facsimiletelephonenumber", "title", "description", "uid",
>> "logindisabled", "logintime", "passwordexpirationtime",
>> "passwordexpirationinterval"}
>>
>> Dim ctrlData As Byte() = BerConverter.Encode("{ibb}", New
>> Object() {1, True, True})
>>
>> Dim persistentSearchControl As New
>> DirectoryControl("2.16.840.1.113730.3.4.3", ctrlData, True, True)
>> Dim searchRequest As New SearchRequest("o=oes",
>> "(&(objectclass=inetorgperson)(cn=*))",
>> System.DirectoryServices.Protocols.SearchScope.Sub tree, attributesList)
>>
>> searchRequest.Controls.Add(persistentSearchControl )
>> Dim asyncCallBack As New AsyncCallback(AddressOf
>> PersistentSearchCallBack)
>> Dim timeSpan As New TimeSpan(1, 0, 0, 0, 0)
>>
>> ldapcon.BeginSendRequest(searchRequest, timeSpan,
>> PartialResultProcessing.ReturnPartialResults, asyncCallBack,
>> searchRequest)
>> ************************************************** ******
>> Here's my Asynch callback subroutine definition:
>>
>> Sub PersistentSearchCallBack(ByVal ar As IAsyncResult)
>>
>> End Sub
>>
>> Here's my function library that I developed for connecting to
>> eDirectory VIA SSL just for reference:
>>
>> Function LDAP_Connect(ByRef Error_Message As String) As
>> LdapConnection
>> 'This function connects to an LDAP server and returns an
>> LDAPConnection object.
>> 'If a connection cannot be established, the function will
>> return Nothing, and the
>> 'Error_Message parameter will be set to the error returned by
>> the LDAP server.
>> Error_Message = ""
>>
>> Try
>> Dim ldapcon As LdapConnection = New LdapConnection(New
>> LdapDirectoryIdentifier(LDAP_Server_IP& ":"& LDAP_Port), New
>> System.Net.NetworkCredential(LDAP_Authentication_D N, ldap_Password))
>> ldapcon.SessionOptions.SecureSocketLayer = True
>> ldapcon.SessionOptions.VerifyServerCertificate = New
>> VerifyServerCertificateCallback(AddressOf ServerCallback)
>> ldapcon.AuthType = AuthType.Basic
>> ldapcon.Bind()
>> Return ldapcon
>> Catch ex As Exception
>> 'Failed to bind to ldap server.
>> Error_Message = ex.Message.ToString
>> Return Nothing
>> End Try
>> End Function
>>
>> Public Function ServerCallback(ByVal connection As LdapConnection,
>> ByVal certificate As
>> System.Security.Cryptography.X509Certificates.X509 Certificate) As
>> Boolean
>> 'Validate that the exchanged public keys match each other.
>> Try
>> Dim expectedCert As X509Certificate = New
>> X509Certificate(LDAP_SSL_Certificate)
>>
>> If expectedCert.GetRawCertDataString =
>> certificate.GetRawCertDataString Then
>> Return True
>> Else
>> Return False
>> End If
>> Catch ex As Exception
>> 'Certificate could not be loaded.
>> Return False
>> End Try
>> End Function
>>
>> When I run the code, I get an the following error message:
>>
>> The server does not support the control. The control is
>> critical.
>>
>> Any help from someone who has successfully done an LDAP persistent
>> search against eDirectory using the System.DirectoryServices.Protocols
>> name space would be greatly appreciated, I've been trying to figure this
>> out in my spare time for a few weeks now. Thanks in advance!
>>
>>
> That error is telling you plain and simple the control you want to use
> doesn't exist in the RootDSE.
Also see,
http://www.novell.com/documentation/...a/agpcvpg.html
You have to enable persistant searches.

Similar Messages

  • What are the possible LdapException.ErrorCode values when using System.DirectoryServices.Protocols?

    When making Ldap calls using the System.DirectoryServices.Protocols Namespace classes and a request generates an LdapException the ErrorCode property contains a numeric value describing the error. However, I cannot find any documentation describing what
    the possible error codes are and what they mean. Is this documented somewhere?
    Thank you.
    -Dave Herrmann

    That should be the error code returned by the ldap_* native functions:
    https://msdn.microsoft.com/en-us/library/aa367014(v=vs.85).aspx

  • System.DirectoryServices.Protocols.SearchRequest Ldap Query Execution Problem

    Hi,
         I am using DirectorySearcher class to query the active directory. It gives all the records in a single page (more than 5000). I want to get 100 records per page. So I moved to SearchRequest class. Using SearchRequest class I can
    get 100 records per page. But for particular query it is not working. I want to get all the users with their
    "samaccountname or displayname starts with 'a'" works fine. Then I want to get all the users with their
    "samaccountname and displayname starts with 'a'", this it is not working. I can guess the reason, some of the users starts their samaccountname with a not having any displayname. Any workaround for this issue? Please guide me
    Please refer the following code
    //This query works fine
    //string filter = "(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(|(samaccountname=a*)(displayname=a*)))";
    /* Not works */
    string filter = "(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(&(samaccountname=a*)(displayname=a*)))";
    LdapConnection connection = new LdapConnection(serverName);
    string[] attribs = { "samaccountname", "displayname" };
    // create a SearchRequest object
    SearchRequest searchRequest = new SearchRequest
    (scope,
    filter,
    System.DirectoryServices.Protocols.SearchScope.Subtree,
    attribs);
    SortRequestControl sortRequest = new SortRequestControl("samaccountname", false);
    searchRequest.Controls.Add(sortRequest);
    VlvRequestControl vlvRequest =
    new VlvRequestControl(0, numEntries, offsetVal);
    searchRequest.Controls.Add(vlvRequest);
    SearchResponse searchResponse =
    (SearchResponse)connection.SendRequest(searchRequest);
    if (searchResponse.Controls.Length != 2 ||
    !(searchResponse.Controls[0] is SortResponseControl))
    Console.WriteLine("The server does not support VLV");
    return null;

    Your exception condition
                if
    (searchResponse.Controls.Length
    != 2 ||
    !(searchResponse.Controls[0]
    is SortResponseControl))
    Console.WriteLine("The server does not support VLV");
    return null;
    is not correct. Why (?) - if you get back no hits from your query there will be no SortResponseControl because there was nothing to sort. Since your query filter has proved that there were no objects with sAMAccountName & displayName equals
    a* in your AD you will not get back a SortResponseControl.
    A better approach would be to check the DirectoryControls on the SearchResponse for the existance of a VlvResponseControl - like this:
           if (GetControl(sresponse.Controls, new VlvRequestControl().Type) == null)
           { Console.WriteLine("The server does not support VLV"); }
            protected DirectoryControl GetControl(DirectoryControl[] controls, string OID)
                DirectoryControl dcret = null;
                try
                { dcret = controls.ToList().Where(d => d.Type == OID).FirstOrDefault(); }
                catch (Exception ex)
                { ex.ToDummy(); } // *see below
                return dcret;
    * Just for completeness and to explain the ex.ToDummy() thing - it's a custom extension:
        public static class ExtensionMethods
            public static void ToDummy(this Exception ex)
    By itself there's nothing wrong with the filter - it's just unecessarly complicated - just write:
    "(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(samaccountname=a*)(displayname=a*))"
    Another thing that could be of some interest for you:
    The filter "(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(samaccountname=a*)(displayname=a*))" uses displayName as index.
    "(&(objectCategory=person)(objectClass=user)(!sAMAccountType=805306370)(|(samaccountname=a*)(displayname=a*)))"; get's translated from the QueryOptimizer on the DC to  ( |  ( &  (objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=mfp-labs,DC=labsetup,DC=org) 
    (objectClass=user) ( !  (sAMAccountType=805306370) )  (displayName=a*) )  ( &  (objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=mfp-labs,DC=labsetup,DC=org)  (objectClass=user) ( !  (sAMAccountType=805306370) ) 
    (sAMAccountName=a*) ) )  and uses sAMAccountName and displayname as index for the search
    @Richard M. : sAMAccountType=805306370 (0x30000002) translates to SAM_TRUST_ACCOUNT - so I guess your AD doesn't have any trusts established .-)
    Hth
    Michael

  • Check if user is part of AD group using System.DirectoryServices.AccountManagement namespace

    I am trying to validate a user from SharePoint to see if a user exists within an AD group. SharePoint does not allow you to do this so I am using the:
    using
    System.DirectoryServices.AccountManagement;
    to validate user existance within that AD group. I found the following method that allows me to validate but bombing on me:
    public bool IsUserInGroup(string username, string groupname, ContextType type)
    PrincipalContext context = new PrincipalContext(type);
    UserPrincipal user = UserPrincipal.FindByIdentity( context, IdentityType.Name, username);
    GroupPrincipal group = GroupPrincipal.FindByIdentity(context, groupname);
    return user.IsMemberOf(group);
    When I call my method, i get
    An operations error occurred.
    I read that it might be an impersination error but I have my web.config set up already with:
    <
    authentication mode="Windows" />
    <
    identity impersonate="true" />
    Any suggestions from someone that has worked with that namespace on SharePoint? I just want to plainly check to see if a user is part of a certain group on AD from SharePoint.
    Victor Palma

    “An operations error occurred. “ may suggest a COMException is occurred.
    I wrote an simple console application that works:
        static void Main(string [] args)
            Console .WriteLine(IsUserInGroup("Administrator" , "Domain Admins" ));
        public static bool IsUserInGroup(string username, string groupname)
            var foundUser = false ;
            var context = new PrincipalContext (ContextType .Domain, "DC" );
            var group = GroupPrincipal .FindByIdentity(context, groupname);
            if (group == null )
                context.Dispose();
                throw new Exception ("Group could not be found: " + groupname);
            // GetMembers(true) is recursive (groups-within-groups)
            foreach (var member in group.GetMembers(true ))
                try
                    if (member.SamAccountName.Equals(username))
                        foundUser = true ;
                        break ;
                catch (Exception )
                    // One of the members could not be retrieved, moving on...
            group.Dispose();
            context.Dispose();
            return foundUser;
    Reference:
    Recursive Active Directory group membership using System.DirectoryServices in .NET 3.5(http://www.lessanvaezi.com/recursive-active-directory-group-membership-using-system-directoryservices-in-net-3-5/)
    Another important notice:
    How to use the System.DirectoryServices namespace in ASP.NET(http://support.microsoft.com/default.aspx/kb/329986)
    Keep It Simple and Stupid.

  • Query/Enumerate eDirectory in Powershell via System.DirectoryServices

    Hello Scripting Guy,
        I have been tasked with taking a .Net program/project and converting it to PowerShell.  The .Net program exported three sources of information and inserts those exports into a SQL database for multiple functions and reasons. 
    The three sources are AD, eDirectory, and PeopleSoft.  The AD was simple with the "Module for Active Directory" and "SQLPS".  Now, I need to connect to eDirectory via LDAP and query the source.  I am able to connect/bind
    to the eDirectory and search but I need to enumerate the directory and insert that into a SQL table.  Given the logic I have developed for AD, it will be no problem inserting the records into SQL but I have not found anything to get my over the hurdle
    of enumerating the directory.  Below is the code that I found to successfully connect with eDirectory and perform a search.  Thank you.
    Connection Setup
    $eDir = New-Object System.DirectoryServices.Protocols.LdapDirectoryIdentifier('1.2.3.4','389')
    $eDirCreds = New-Object System.Net.NetworkCredential('cn=ConnectID,o=Home','MyConnectPS')
    $ED = New-Object System.DirectoryServices.Protocols.LdapConnection($eDir,$eDirCreds)
    $ED.SessionOptions.SecureSocketLayer = $False
    $ED.AuthType = 'Basic'
    $ED.Bind();
    Search eDirectory records
    $SearchScope = [System.DirectoryServices.Protocols.SearchScope]::SubTree
    $SearchAttributeList = ,"*" <--- Not quit sure why the "," proceeds the "*"
    $SearchBaseDN = "o=Home"
    $SearchFilter = "(uid=SomeUser)"
    $SearchReq = new-object System.DirectoryServices.Protocols.SearchRequest -ArgumentList $SearchBaseDN,$SearchFilter,$SearchScope,$SearchAttributeList
    $SR = $ED.SendRequest($SearchReq)
        $SR displays ResultCode of success found or not found but if found contains DN in the "Entries" field.
    MatchedDN    :
    Controls     : {}
    ResultCode   : Success
    ErrorMessage :
    Referral     : {}
    References   : {}
    Entries      : {cn=MyID,ou=OU1,ou=OU2,o=Home}
    RequestId    :

    I found my answer via this link at the Script Library:
    ---http://www.thescriptlibrary.com/Default.asp?Action=Display&Level=Category3&ScriptLanguage=Powershell&Category1=Active%20Directory&Category2=User%20Accounts&Title=Scripting%20Ldap%20Searches%20using%20PowerShell---
    In answer to your question JRV, I wanted to perform a LDAP query for all directory ENTRIES in the eDirectory LDAP and then process the results into a SQL destination.  The LDAP search that I was successful with only returned the success or fail
    of finding a single object that I search for not the entire LDAP directory.
    There was also an unanswered post from 2007 under the subject of "querying Edirectory using System.DirectoryServices.Protocols" that I was referred to when I filled the subject to this question.  It went unanswered
    and acknowledged for two years.
    Here is the code and a small sample of data so that it may help others.  The GetType() for $SearchResults returns as a System.Array with a sub System.Array as the Properties column.  Also code to handle the results.
    #Load Support Modules and Assemblies
    Import-Module ActiveDirectory
    Import-Module SQLPS -DisableNameChecking
    Add-Type -AssemblyName System.DirectoryServices
    #Setup eDirectory Connection Variables
    $eDirPath = 'LDAP://1.1.1.1:389/o=home' (Whatever the eDir)
    $eDirUser = 'cn=MyLDAPID,o=Home' (DN of UID)
    $eDirPWD = 'MyLDAPPWD'
    $eDIrAuthType = 'None' (Equates to basic)
    #Establish eDirectory Connection and Enumerate
    $Root = New-Object System.DirectoryServices.DirectoryEntry -argumentlist $eDirPath,$eDirUser,$eDirPWD,$eDIrAuthType
    $Query = New-Object System.DirectoryServices.DirectorySearcher
    $Query.SearchRoot = $Root
    $Query.Filter = "(ObjectClass=Person)" (or whatever LDAP query you want)
    $SearchResults = $Query.FindAll()
    Path Properties
    LDAP://1.1.1.1:389/cn=Account1,o=home {loginshell, telephonenumber, uniqueid, securityequals...}
    LDAP://1.1.1.1:389/cn=Account2,o=home {loginshell, telephonenumber, uniqueid, securityequals...}
    LDAP://1.1.1.1:389/cn=Account3,o=home {loginshell, uniqueid, securityequals, gidnumber...}
    #For processing each entry in the results
    ForEach ($Result in $SearchResults) `
    #Convert object to utilize named values like CN, SN, UniqueID
    $eDirObject = [PSCustomObject]$Result.Properties
    write-host "$eDirObject.cn $eDirObject.sn $eDirObject.UniqueID"

  • Af:query and MDS for persisting searches

    I have seen several references to persisting searches using the af:query component and MDS, but I can't find any information on how to do it. Can somebody please post some info on this topic? Is there an uptake doc or an example app that demonstrates how this is done?
    I have looked on the Oracle doc site: http://fmwdocs.us.oracle.com/doclibs/fmw/E10285_01/appsdrop.htm
    And I have searched the forums with no luck.
    I am using Build JDEVADF_MAIN_GENERIC_081208.2002.5237.
    Thanks!
    Mike

    Mike,
    You're obviously an Oracle employee with access to internal Oracle websites and builds that the rest of the world cannot see.
    You should ask on the internal Oracle forum.
    John

  • Any concern on persistent search through a load balancer?

    We have access manager 7 installed which make use of persistent search. My understanding is that persistent search required to maintain a connection so that the server can refresh/update the client whenever entry in the result set changed. If we configure the system to connect to ldap through load balancer, will that cause any problem? What will happen if the load balancer refresh connection after a period of time? Or , if the original ldap server failed and the load balancer try load balance the client to another ldap server, will the persistent search still works?
    Also, if the ldap server that the persistent search initially established connection with crashed, will the client get error message and in that case, is it the client's responsibility to re-run/retry the persistent search with other failover ldap server?
    Thanks,

    Your best bet, even when using a hardware load balancer, is to front your DS instances with a pair of load-balanced Directory Proxy Servers. This way, you have physical redundancy at the load balancer level, and intelligent LDAP-aware load balancing at the proxy server level. DPS 6 is very nice in that you can split binds, searches, and updates amongst several backend DS instances, and the connection state is maintained by the proxy, not the DS instance (i.e. if an instance fails, you really shouldn't be forced to rebind, the proxy fails-over to another DS for searching).
    We have our Directory Servers on a pair of Solaris 10 systems, each with a zone for a replicated Master DS, and another zone each for a DPS instance. The DPS instances are configured to round-robin binds/searches/updates/etc. among the DS master zones. This works out very well for us.

  • JNDI, Active Directory and Persistent Searches (part 2)

    The original post of this title which was located at http://forum.java.sun.com/thread.jspa?threadID=578342&tstart=200 subsequently disappeared into the ether (as with many other posts).
    By request I am reposting the sample code which demonstrates receiving notifications of object changes on the Active Directory.
    Further information on both the Active Directory and dirsynch and ldap notification mechanisms can be found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ad/ad/overview_of_change_tracking_techniques.asp
    * ldapnotify.java
    * December 2004
    * Sample JNDI application that uses AD LDAP Notification Control.
    import java.util.Hashtable;
    import java.util.Enumeration;
    import javax.naming.*;
    import javax.naming.ldap.*;
    import com.sun.jndi.ldap.ctl.*;
    import javax.naming.directory.*;
    class NotifyControl implements Control {
         public byte[] getEncodedValue() {
                 return new byte[] {};
           public String getID() {
              return "1.2.840.113556.1.4.528";
         public boolean isCritical() {
              return true;
    class ldapnotify {
         public static void main(String[] args) {
              Hashtable env = new Hashtable();
              String adminName = "CN=Administrator,CN=Users,DC=antipodes,DC=com";
              String adminPassword = "XXXXXXXX";
              String ldapURL = "ldap://mydc.antipodes.com:389";
              String searchBase = "DC=antipodes,DC=com";
              //For persistent search can only use objectClass=*
              String searchFilter = "(objectClass=*)";
                   env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
              //set security credentials, note using simple cleartext authentication
              env.put(Context.SECURITY_AUTHENTICATION,"simple");
              env.put(Context.SECURITY_PRINCIPAL,adminName);
              env.put(Context.SECURITY_CREDENTIALS,adminPassword);
              //connect to my domain controller
              env.put(Context.PROVIDER_URL,ldapURL);
              try {
                   //bind to the domain controller
                      LdapContext ctx = new InitialLdapContext(env,null);
                   // Create the search controls           
                   SearchControls searchCtls = new SearchControls();
                   //Specify the attributes to return
                   String returnedAtts[] = null;
                   searchCtls.setReturningAttributes(returnedAtts);
                   //Specify the search scope
                   searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                         //Specifiy the search time limit, in this case unlimited
                   searchCtls.setTimeLimit(0);
                   //Request the LDAP Persistent Search control
                         Control[] rqstCtls = new Control[]{new NotifyControl()};
                         ctx.setRequestControls(rqstCtls);
                   //Now perform the search
                   NamingEnumeration answer = ctx.search(searchBase,searchFilter,searchCtls);
                   SearchResult sr;
                         Attributes attrs;
                   //Continue waiting for changes....forever
                   while(true) {
                        System.out.println("Waiting for changes..., press Ctrl C to exit");
                        sr = (SearchResult)answer.next();
                              System.out.println(">>>" + sr.getName());
                        //Print out the modified attributes
                        //instanceType and objectGUID are always returned
                        attrs = sr.getAttributes();
                        if (attrs != null) {
                             try {
                                  for (NamingEnumeration ae = attrs.getAll();ae.hasMore();) {
                                       Attribute attr = (Attribute)ae.next();
                                       System.out.println("Attribute: " + attr.getID());
                                       for (NamingEnumeration e = attr.getAll();e.hasMore();System.out.println("   " + e.next().toString()));
                             catch (NullPointerException e)     {
                                  System.err.println("Problem listing attributes: " + e);
              catch (NamingException e) {
                          System.err.println("LDAP Notifications failure. " + e);
    }

    Hi Steven
    How can I detect what change was made ? Is there an attribute that tell us ?
    Thanks
    MHM

  • Enterprise Search using Sharepoint Server 2007 + SAP R/3

    Hi experts,
    I want to achieve an enterprise search using SharePoint Server 2007 (MOSS).
    SharePoint includes the BDC (business data catalog) which allows you to communicate with the SAP System.
    I read in the Microsoft whitepapers that thereu2019s a need for a web application server 6.40.
    So here is the problem:
    We have SAP R/3 Enterprise 4.7 with WAS 6.20. We donu2019t want to change or upgrade the SAP system.
    There are ways to connect the WAS to the R/3 system e.g. RFC.
    But does this still work for search in SharePoint?
    Did anybody already deal with this problem?
    Any other ideas connecting SharePoint to SAP in this scenario?
    Best regards
    Philipp Detemple

    > and having requirement to upgrade OS version from B.11 to B.23. Currently server is hosting SAP R/3 Enterprise version.
    So you upgrade HP-UX 11.11 to HP-UX 11.23?
    > I have tried to serach SAP service market place for PAM, but could not find specific information on version upgrade from B.11 to B.23
    Yes - because there is no HP-UX 23.x, only 11.23 and 11.31. For the version overview check
    Note 939891 - HP-UX: End of Support Dates
    Note 1075118 - SAP on HP-UX: FAQ
    > My Questioin is: If we copy system as it is to new host and if we keep the same Kernel Patch 196, will it work fine or give issue?
    It will work.
    > So even if I got for latest patch 304 which is released on 16.11.2009, still the OS version for which it built is B.11, so if we have B.23, will it work? I would not see the possibilities of kernel upgrade at this stage.
    Why no possibility for a kernel upgrade if you install a new server?
    > so with same kernel will it work? What else I need to check for the migration and make sure that everything works fine on new server.
    Check
    Note 831006 - Oracle 9i installation on HP-UX 11.23 and 11.31
    Markus

  • Service Ticket: Search using Inbox & My Worklist in IC WebClient

    Dear Gurus,
    When I create a Service Ticket in the IC WebClient in CRM 5.0 and save it, the system generates a Transaction Number which I can then search for by using Interaction History, Inbox and My Worklist.
    When I search using Interaction History, I select the relevant Service Ticket and the system takes me to an Interaction Record, and from there I can navigate to the correct Service Ticket.
    When I search using Inbox, the system takes me to a Service Order, which I do not believe is correct.
    When I search using My Worklist, the system also takes me to a Service Order, which I do not believe is correct.
    Any recommendations?
    Rgs,
    Alan

    Hi
    You can search service ticket from inbox ideally by entering the object ID in the agent inbox or you can also search for service tickets in interaction record which is an activity transaction type if you maintain the copy control for service ticket from interaction record then you can search for service ticket through the interaction record as well.
    refer to best practice link for the service ticket custimiseing settings for icwebelient
    http://help.sap.com/bp_crmv250/CRM_DE/index.htm
    Reward points if helpful
    Regards
    Dinaker vikas

  • Use system.cursor_block in default_where of set_block_property

    Dear All.
    I have got a control_block with Search&update button.I have got 3 database blocks.I wish to use above button for searching all the blocks by dymanically passing the block name using system.cursor_block:
    go_block('SYSTEM.CURSOR_BLOCK');
    set_block_property('SYSTEM.CURSOR_BLOCK',default_where,'CONTROL_NO='||:SYSTEM.CURSOR_BLOCk.CONTROL_NO);
    execute_query;
    set_block_property('SYSTEM.CURSOR_BLOCK',default_where,'');
    above code is giving error at :syste..cursor_block.control_no.
    Plz. help me how to do this.
    Thanks in advance.
    Mani

    try this statement
    go_block(:system.cursor_block);
    set_block_property(:system.cursor_block,etc etc);
    execute_query;
    set_block_property(:system.cursor_block,default_where,'');
    Hope it helps you,
    Fabrizio

  • Systems not appearing/Cannot search for systems

    Greetings,
    I have defined two systems that call BAPI's (via RFC) on an instance of SAP that we utilize for testing. Using Visual Composer 7.0, we were able to use the "Find Data" option to search our portal instance for systems, but this feature does not seem to be present in the CE 7.1 version of VC.
    We were initially trying to migrate the Visual Composer iViews that we created from our 7.0 portal to our CE 7.1 portal. We defined these two systems in the portal and assigned the correct permissions and connection strings before performing the migration. The migration wizard in VC asked us to define the new system names, but the dropdown box that is supposed to contain the defined systems was empty.
    My questions are...
    1. Even though we've defined the systems in CE 7.1, why are they not appearing during the migration process as options?
    2. In VC 7.1, the search function does lot list systems as an option. I have tried searching all of Portal Content, but no systems appear in the results. How do I search for systems defined in the portal so that I can define a data source?
    Thanks and I appreciate your help.
    -= Michael

    Hi Michael,
    first of all the connection to an ABAP system via portal system object as you have used it in VC7.0 should also work in VC7.1. Maybe there is an issue with your configuration. There is also another option to setup the connection via RFC connection in the SAP NetWeaver Administrator. Anyway I suggest that you try to establish a connection via RFC, which is described in the [Wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/vc71/rfc+destination]. If this connection will work then you should investigate why the connection via system portal system object is not working.
    Please let me know if you have success with the RFC connection.
    Best Regards,
    Marcel

  • Need sample code to do text search using boolean operators AND OR + -

    I'm looking for an algorithm doing text searches in files
    I need it to support AND OR + - keywords (for example "ejb AND peristence")
    Does anyone knows where I cand find this kind of algorithm with the full source ?
    Of course I can adapt C,C++ to Java.
    In fact my target language is Serverside javascript (sorry) so I prefere rather low level solutions !
    Any help will be grealy appreciated and the resulting code will be posted
    here and on my website : http://www.tips4dev.com

    Firstly, a little note to the technical solution: what you probably need the most is speed. I may sound strange, but personally I am convinced that if you could use system tools a naive algorithm:for i:=1 to m do
    grep (word)
    od; whose complexity is O(m.n), where m is the number of words to be processed and n somehow represents the cardinality of the text to-be-sought-through, so this naive algorithm would actually be in 99% of cases much faster than any implementation of the algorithm below, whose complexity is O(m+n), because the implementation of the grep routine (O(n)) would be optimized and m will be low (who queries 153 words at once?)
    Anyway, you asked for an algorithm and you'll have it. It is quite elegant.
    Aho, A.V. - Corasick, M.V.: Efficient String Matching - An Aid to Bibliographic Search, Communication of the ACM, 1975 (vol. 18), No. 6, pg. 333-340
    [i]The task: let's have an alphabet X and a string x = d1d2...dn (d's are characters from X) and a set K = {y1, ... ym} of words, where yj = tj,1 ... tj,l(j) (t's are again characters from X).
    Now we search for all <i, yp> where yp is the suffix of d1...di (occurences of the word yp in x)
    (note: if you want to search for the whole words tj,1 and tj,l(j) must be blanks)
    The idea of the algorithm is that we first somehow process words yp to construct a search machine and with this machine we will loop through X to search for occurrences of all the words at once.
    Example:
    K = {he, she, his, hers}
    X = ushers
    search machine M(Q - set of states, g - "step forward" function, f - "step back" function, out - reporting function):
    (function g)
    0 (initial state)  h-> state 1 e-> state 2 r-> state 7 s-> state 8 ... for {he, hers}
    state 1 i-> state 6 s-> state 7 ... for {his}
    state 0 s-> state 3 h-> state 4 e-> state 5 e ... for {she, he}
    And for all the characters is defined 0  x -> 0
    Now, in
    (function out)
    state 2: report {he}
    state 5: report {she, he}
    state 7: report {his}
    state 9: report {hers}
    "Step back" function f for this particular set of word would be:
    9 -> 3, 7 -> 3, 5 -> 2, 4 -> 1 otherwise the machine would return to the initial state 0
    Processing of ushers will look like:
    <0,0> u-stay in the state 0 <1,0> s-move to state 3 <2,3>, <3,4>, <4,5> state 5-report (he, she}, cannot move forward -> must step back (like if "he" was received) <4,2> r-move to state 8, <5,8>, <6,9>
    Before we show how to construct the searching machine M (Q,g,f,out) let�s consider the algorithm how to use it:
    Alg 1.begin
    state:= 0;
    for i = 1 to n do
    //if cannot move forward, move back
    while g(state, di) not defined do state:=f(state) od;
    //move forward to a new state
    state:=g(state, di);
    //report all the words represented by the new state
    for all y from out(state) do Report(i,y) od;
    od
    end.
    Alg 2. � build of the �step forward� function g and an auxiliary function o that will be later used for the construction of outvar q:integer;
    procedure Enter(T1�Tm);
    begin
    s:=0; j:=1;
    //processing a prefix of a new word that is a prefix of an already processed word too
    while j&ltm and g(s,Tj) defined do
    s:=g(s,Tj); j:=j+1;
    od;
    while j&ltm do
    q:=q+1; //a new state � global variable
    define g(s,Tj) = q; //definition of a single step forward
    s:=q;
    j:=j+1;
    od;
    //the last state must be a state when at least the processed word is reported
    define o(s) = [T1, � Tm];
    end;
    begin
    q:=0; //initial state
    for p:= 1 to k do Enter(yp) od;
    for all d from the alphabet X do
    if g(0,d) not defined then define g(0,d) = 0 fi
    od
    end. Alg 3. � build of the �step back� function f and the reporting function outcreate an empty queue
    define f(0) = 0; out(0) = {} //an empty set � we expect words of the length 1 at least
    for all d from X do
    //process children of the initial state
    s:=g(0,d);
    if s!=0 then
    define f(s) = 0; //1-character states, if we throw away the first character we return to the initial
    define out(s):=o(s); //report 1-character words, if any
    move s at the end of the queue
    fi
    od
    while queue not empty do
    r:= the first member of the queue; remove r from the queue;
    for all d from X do //process all the children of r
    if g(r,d) defined then
    s:= g(r,d); //get a child of r
    t:= f(r); //f(r) has already been defined
    while g(t,d) not defined do t:=f(t) od;
    //we found a state from which g(t,d) has sense
    define f(s) = g(t,d);
    define out(s) = o(s) UNION with out(f(s));
    move s at the end of the queue;
    fi
    od
    od
    Processing of a query � normal forms
    Until now we have solved the problem how to search for multiple words in a text at once. The algorithm returns not only not only whether a word was found or not, but also where exactly a word can be found � all the occurrences and their locations.
    However, the initial task was slightly different: procession of a query like �X contains (y1 AND/OR y2 � yn)� In order to decide a question like that it might not be necessary to find all the occurrences of given words, actually not even an occurrence of all the words (e.g. word1 OR word2 is fulfilled as soon as either word1, or word2 is found).
    Let�s suppose that a searching query is given in its disjunctive normal form (DNF):
    A1 OR A2 OR ...Ak where each of Ax = B1 AND B2 AND ...Bkx and Byz is a statement �X contains yp�
    Now, the query is successful whenever any of Ax is fulfilled.
    (I don�t know how much you know about transformation of a logical formula to its disjunctive form � it is quite a famous algorithm and can be found in any textbook of logic or NP-completeness. I hope that evaluation of the formula, which is what happens in the procedure Report of the algorithm Alg. 1, is trivial.)

  • Who's Who: How to refine employee search using customer defined indicator?

    Hello,
    It is possible to refine employee search using status indicator STAT2 (Employees' Employment Status). I would like to refine employee search using e.g. Customer defined status indicator STAT1. I created an entry identical to STAT2 but with STAT1
    in view V_T77S0 but it did not help at all.
    How to refine employee search using customer defined indicator or any other info
    from infotype 0000 or 0001?
    Kind regards,
    Pawel

    Hi
    This could be done using the infosets provided in who's who customization screen.
    Pl go through following help.
    If this helps, pl do reward.
    Who's Who (ESS): Selection and Output
    In this activity, you can change the fields for selecting and outputting data for the Who's Who service. The fields of the underlying InfoSet Query are available. Note, however, that text fields cannot be used for data selection (with the exception of the fields Organizational Unit, Position Name, and Job Name).
    You have the following options:
    You can specify the fields for selecting an employee.
    You can specify the fields for the hitlist, that is, the list of all employees who meet the selection criteria.
    You can specify the fields for the detail screen for a selected employee.
    All selected fields are automatically transferred to the service in the sequence you chose and are then available for selection or output.
    Standard settings
    The standard system contains an InfoSet for the service. It contains default selection and output fields.
    Activities
    1. Check whether the default settings fulfill your requirements.
    2. If you want to change the default values, proceed as follows:
    a) Choose the relevant tab page and remove the indicator in the Use default settings for group box.
    To change the selection fields, choose the Selection Fields tab page.
    To change the fields of the hitlist, choose the Output Fields List tab page.
    To change the fields of the detail screen, choose the Output Fields Detail tab page.
    b) If you want to delete a default field, select the field in the relevant tab page and choose Delete Line from Display Table.
    c) If you want to add an additional field from the InfoSet, select the field in the Fields in InfoSet group box and choose Copy Entry from InfoSet Table. You have two options:
    You select an existing field in the tab page and choose Insert Entry in Display Table. The system copies the InfoSet field and inserts it above the selected entry.
    You select the blank field at the end of the tab page and choose Insert Entry in Display Table. The system copies the InfoSet field and inserts it at the end of the tab page.
    Note that the sequence of the fields in the tab page determines the sequence of the fields in the service.
    The selection screen fields are laid out according to the following pattern (maximum of 4 rows and 20 fields):
    1 I 2 I 3 I13 I17
    4 I 5 I 6 I14 I18
    7 I 8 I 9 I15 I19
    10 I11 I12 I16 I20
    The fields in the detail screen are laid out underneath each other for a maximum of 20 rows, while the fields in the hitlist are laid out from left to right for each row, for a maximum of 20 fields.
    Note: You cannot select by the Employment Status field (P0000-STAT2).
    d) If you want to add a new field that is not in the InfoSet, you have to create a new InfoSet. You then assign the required field to the new InfoSet. Then select the new InfoSet in the InfoSet field in the Parameters group box. Proceed as described above to add the field to the relevant tab page.
    For information about creating InfoSets, see Specify InfoSets for Interactive Employee Selection in the IMG for the HR Information System.
    Not the SAP naming convention for the standard InfoSet: /SAPQUERY/HR_XX_PA_ESS
    The country code "XX" stands for "international." The InfoSet itself is in the global area (cross-client). You can create customer-specific InfoSets by copying an existing entry. Take account of your  customer namespace and set the relevant country code.
    Note: The Personnel Number field (P0000-PERNR) must not be added to the InfoSet. If you want to use the personnel number, use the P0001-PERNR field, for example.
    e) In the Sort field of the Output Fields List tab page, you can specify the sort sequence in the hitlist.
    Example: You have selected the Last Name and First Name fields for the hitlist. You want the hits to be sorted first of all by the employees' last name, then by the first name. You therefore enter 1 for the last name and 2 for the first name in the Sort field.
    f) Once you have completed your modifications, choose Check Display Table. If the check was successful, choose Save to save your changes. If inconsistencies were found during the check, a message in the relevant line notifies you of them.
    Further notes
    In certain circumstances, runtime issues may occur, especially in data selection. If they do, set the Selection Fields indicator in the Use Default Settings for group box. This deactivates the use of the InfoSet Query; instead, the system uses the BAPI_EMPLOYEE_GETDATA method.
    You can switch the hitlist and the detail screen to the BAPI_EMPLOYEE_GETDATA method by setting the Output Fields List and Output Fields Detail indicators.
    Note that by setting an indicator, you restrict the field selection in the relevant tab page to the interface of the method.
    If, in the initial screen, you enter a country for which values have not yet been defined, the system automatically creates an entry that sets all indicators in the Use default settings for group box. You can then edit the entry to suit your requirements.
    You can specify whether you want employees' photos to be displayed in the service in the IMG for Employee Self-Service under Determine User Options.
    If this helps, pl do reward.

  • 11gR1 - using SOAP_CLIENT as protocol to connect to worklist service fails

    Hi,
    We are trying to use the SOAP_CLIENT protocol to connect to the BPEL worklist service using a standalone java application.
    The code to connect is:
    IWorkflowServiceClient wfSvcClient = null;
    IWorkflowContext wfCtx = null;
    Map<CONNECTION_PROPERTY,String> properties = new HashMap<CONNECTION_PROPERTY,String>();
    properties.put(CONNECTION_PROPERTY.SOAP_END_POINT_ROOT,"http://localhost:8001");
    properties.put(CONNECTION_PROPERTY.SOAP_IDENTITY_PROPAGATION,"non-saml");
    //properties.put(CONNECTION_PROPERTY.SECURITY_POLICY_URI,"oracle/wss10_saml_token_client_policy");
    //properties.put(CONNECTION_PROPERTY.MANAGEMENT_POLICY_URI,"oracle/log_policy");
    //wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT);
    wfSvcClient = WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.SOAP_CLIENT,properties,null);
    ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();
    try {
    wfCtx = querySvc.authenticate("weblogic","welcome1".toCharArray(),null);
    } catch (WorkflowException wfe) {
    System.out.println(wfe);
    We receive the following error:
    \oracle.jps_11.1.1\jps-ee.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.jps_11.1.1\jps-internal.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.jps_11.1.1\jps-unsupported-api.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.jps_11.1.1\jacc-spi.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.pki_11.1.1\oraclepki.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.osdt_11.1.1\osdt_core.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.osdt_11.1.1\osdt_cert.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.osdt_11.1.1\osdt_xmlsec.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.iau_11.1.1\fmw_audit.jar;C:\oracle\Middleware\modules\javax.security.jacc_1.0.0.0_1-1.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.idm_11.1.1\identitystore.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.adf.share_11.1.1\adf-share-support.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.adf.share.ca_11.1.1\adf-share-ca.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.adf.share.ca_11.1.1\adf-share-base.jar;C:\oracle\Middleware\jdeveloper\modules\oracle.xdk_11.1.0\xmlparserv2.jar;C:\oracle\Middleware\modules\javax.activation_1.1.0.0_1-1.jar worklistclientproj.WorklistClient
    21-Aug-2009 7:10:46 PM oracle.security.jps.internal.config.xml.XmlConfigurationFactory initDefaultConfiguration
    SEVERE: java.io.FileNotFoundException: C:\JDeveloper\mywork\TestWorklistClientApp\WorklistClientProj\.\config\jps-config.xml (The system cannot find the path specified)
    SEVERE: WSM-09004 Component auditing cannot be initialized.
    SEVERE: WSM-09004 Component auditing cannot be initialized.
    INFO: WSMAgent is initialized for category=management, function=agent.function.client, topologyNodePath=/wls/default/EJBs/default/COMPONENTs/default/WEBSERVICECLIENTs/TaskQueryService/PORTs/TaskQueryServicePort/INTERCEPTORs/, isJ2EE=false
    SEVERE: java.io.FileNotFoundException: C:\JDeveloper\mywork\TestWorklistClientApp\WorklistClientProj\.\config\jps-config.xml (The system cannot find the path specified)
    SEVERE: WSM-09004 Component auditing cannot be initialized.
    SEVERE: WSM-09004 Component auditing cannot be initialized.
    INFO: WSMAgent is initialized for category=security, function=agent.function.client, topologyNodePath=/wls/default/EJBs/default/COMPONENTs/default/WEBSERVICECLIENTs/TaskQueryService/PORTs/TaskQueryServicePort/INTERCEPTORs/, isJ2EE=false
    Exception in thread "main" oracle.bpel.services.workflow.client.WorkflowServiceClientException: oracle.bpel.services.workflow.client.WorkflowServiceClientException: java.lang.NullPointerException
         at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.getTaskDetailsById(AbstractDOMTaskQueryServiceClient.java:564)
         at worklistclientproj.WorklistClient.main(WorklistClient.java:43)
    Caused by: oracle.bpel.services.workflow.client.WorkflowServiceClientException: java.lang.NullPointerException
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.invoke(TaskQueryServiceSOAPClient.java:212)
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.getTaskDetailsById(TaskQueryServiceSOAPClient.java:318)
         at oracle.bpel.services.workflow.query.client.AbstractDOMTaskQueryServiceClient.getTaskDetailsById(AbstractDOMTaskQueryServiceClient.java:556)
         ... 1 more
    Caused by: java.lang.NullPointerException
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceSOAPClient.invoke(TaskQueryServiceSOAPClient.java:206)
         ... 3 more
    Process exited with exit code 1.
    Has anyone else successfully connected to the BPEL worklist service using the client APIs using the SOAP_CLIENT protocol?

    Fixed it.
    Came down to a mistake in the Group/Secret.
    Finally realized that I had mis-interpretted where the VPN Group was configured.
    Thought I had made the Group = CiscoVPN
    by looking at
    crypto isakmp key CiscoVPN address 0.0.0.0 0.0.0.0
    But really the Group = EZVPN
    Can see this at
    crypto isakmp client configuration group EZVPN
    The
    %CRYPTO-6-IKMP_MODE_FAILURE: Processing of Aggressive mode failed with peer at 97.83.99.146
    message ended up being a simple mismatch of the Phase 1 Group/Secret combination.

Maybe you are looking for

  • CAN I TURN MY MACBOOK PRO INTO A MONITOR?

    Help I want to turn my Macbook Pro into a monitor for my Playstation 2 so that way I can record on my screen using quicktime. please help I used a vga adapter from apple a AV to vga converter, and is their any way for me to use an iphone on a mac to

  • How to resolve hostname/firewall issue for 9iAS 9.0.2.0.1?

    Hi, I am going to install 9iAS 9.0.2.0.1 on Solaris 5.8, and noticed something in the installation guide ((iAS release Notes Addendum p2-13) saying "Oracle9iAS does not support changing hostname and ip after installation" My questions are: 1. My serv

  • Help needed to mark or highlight certain columns in Data Modeler

    Hi there, We use the data modeler to present our data model to the security department to explain/prove for which columns we ran a data masking/anonymization function. I am looking for any kind of way to either highlight or change a set of columns ac

  • What version of adobe flash should i get?

    I want to get adobe flash to make animations at home, but im not sure what version to get or where to get it. I don't need the best version and i dont want to spend that much. Thank

  • IPhone keeps crashing

    I just bought this thing and all it does is keep crashing. I go to use Maps...CRASH...YouTube...CRASH...Safari...CRASH. Should I go return this thing and wait for them to release a phone that actually works. I'm getting tired of being a beta tester.