1 2 Previous Next 17 Replies Latest reply: Mar 18, 2012 7:04 PM by Shaun Hemsley RSS

    Problems with installing latest version of Patrol products

    Shaun Hemsley

      OS: AIX5.3

      Performance Manager for Servers: 9.10.00

      Common Installer: 7.5.62

       

      Since the latest versions of these products have been introduced we've been having a 80% failure rate with installations (whether silent or GUI).  We see a variety of errors (most but not all are related to the Perfrom Data Collector).  Just wondering if anyone else is experiencing these issues?  It seems like such a high failure rate that I can imagine it's happening to others too tho BMC tell me we're the only ones who have raised issues for it.

       

      I think many of the issues may relate to our environment and also with changes made to the way the installer works.  BMC have not been able to definitively identify fixes for the problems either.

       

      I'll post the specific errors over the next day or two.

        • 2. Problems with installing latest version of Patrol products
          Shaun Hemsley

          not sure how that post helps?  I have the install files.

          • 3. Problems with installing latest version of Patrol products
            Rich Bone

            How about the /tmp folder, how much space does it have on installs that succeed and ones that fail?  We've found that anything less than 1GB will cause the Perfmon install to bomb out on AIX.

             

            Rich

            • 4. Problems with installing latest version of Patrol products
              Tony Boman

              Specialbone is correct. The most usual cause for failures is lack of temporary diskspace. On AIX, the actual amount of temporary space the install program requires is just over 600MB. The install will check /tmp and the installing user's $HOME for the available space. If not found, the install of the Perform Data Collector will fail. The default space allocated to /tmp on AIX seems to be 512MB, which is just under the requirement.

               

              You can define the variable $IATEMPDIR to point to a different temporary filesystem if you do not have sufficient temporary space in /tmp or $HOME.

               

              I have also seen some failures where there is also insufficient space to install the whole product in the location chosen as the Patrol installation directory.

               

              These diskspace problems are not that well reported to the screen and are often only seen in the install logs.

               

              Tony

              • 5. Problems with installing latest version of Patrol products
                Shaun Hemsley

                yes - found this out last year.  we were advised by BMC to have at least 2Gb free on /tmp during installations.

                 

                the issue that i've been working with BMC on tonight (for the last 7 hours) relates to the 7.5.10 BPA installer using port 9998, which is hardcoded.  unfortunately we seem to have a lot of other processes that like to use this port too.

                 

                this is the error message you might get during installation for this port conflict:

                 

                -> ERROR: transport error 202: bind failed: The socket name is already in use. ["transport.c",L70]

                ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L547]

                JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

                Fatal error: JDWP No transports initialized, jvmtiError=JVMTI_ERROR_INTERNAL(113)

                Configuration successfully loaded

                "/opt/patrol/Patrol3//archives/preloadesg.tmp"

                • 6. Problems with installing latest version of Patrol products
                  Tony Boman

                  It might not help, but NetIQ AppManager Client uses port 9998 and that can be changed. You cannot change it on the Patrol Common Installer, but you can on NetIQ. Might be a viable workaround, although I admit a bit of a pain.

                   

                  Tony

                  • 7. Problems with installing latest version of Patrol products
                    Shaun Hemsley

                    i've had 3 different applications using this port so far :-)

                     

                    apparently this issue will be fixed in the next version of the BPA installer

                    • 8. Problems with installing latest version of Patrol products
                      Shaun Hemsley

                      we managed tonight to fix our port conflict error and run the installation - tho this managed fail too....these were the errors:

                       

                      Thu Feb 16 17:05:13 2012: ESS Error: ESS_Policy_InitSecurityPolicy() failed >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: Security policy is either missing or unreadable: /etc/patrol.d/security_policy_v3.0/site.plc/common /etc/patrol.d/security_policy_v3.0/site.plc/server /etc/patrol.d/security_policy_v3.0/agent.plc/common /etc/patrol.d/security_policy_v3.0/agent.plc/server >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: ESS_Policy_InitSecurityPolicy() failed >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: Security policy is either missing or unreadable: /etc/patrol.d/security_policy_v3.0/site.plc/common /etc/patrol.d/security_policy_v3.0/site.plc/client /etc/patrol.d/security_policy_v3.0/agent.plc/common /etc/patrol.d/security_policy_v3.0/agent.plc/client >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: ESS_Policy_InitSecurityPolicy() failed >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: Security policy is either missing or unreadable: /etc/patrol.d/security_policy_v3.0/site.plc/common /etc/patrol.d/security_policy_v3.0/site.plc/encryptor /etc/patrol.d/security_policy_v3.0/agent.plc/common /etc/patrol.d/security_policy_v3.0/agent.plc/encryptor >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: ESS_Policy_InitSecurityPolicy() failed >-4<

                      Thu Feb 16 17:05:13 2012: ESS Error: Security policy is either missing or unreadable: /etc/patrol.d/security_policy_v3.0/site.plc/common /etc/patrol.d/security_policy_v3.0/site.plc/authenticator /etc/patrol.d/security_policy_v3.0/agent.plc/common /etc/patrol.d/security_policy_v3.0/agent.plc/authenticator >-4<

                      Configuration successfully loaded "/opt/patrol/Patrol3//archives/preloadesg.tmp"

                       

                      we ran the rootscripts afterwards and all looked successful but when starting the agent get the error message:

                       

                      Thu Feb 16 19:50:19 2012: Unable to read PATROL conf file. Exiting...

                      • 9. Problems with installing latest version of Patrol products
                        Tony Boman

                        A possible cause for that issue:

                         

                        ++++++++++++

                        A potential reason that /etc/patrol.d isn't getting updated by agent_configure.sh was that the "Overwrite current security configuration (keys, certificates and trusted roots)" selection was set to "No" during the installation.

                        Edit the ./Patrol3/agent_configure.sh script file and look for the following lines:

                         

                        CUSTOMER_SECURITY_LEVEL=0
                        SECURITY_OVERWRITE=FALSE

                         

                        If SECURITY_OVERWRITE is set to FALSE, make a backup copy of the original agent_configure.sh file, change FALSE to TRUE, save the file, and execute as ROOT:  ./agent_configure.sh -d

                         

                        If SECURITY_OVERWRITE=TRUE already, execute as ROOT the ./agent_configure.sh -d script.


                        ++++++++++++++++

                         

                        Tony

                        • 10. Problems with installing latest version of Patrol products
                          Tony Boman

                          Further to my last note, when installing foir the first time or upgrading, always select Yes to the question "Overwrite current security configuration".

                           

                          Tony

                          • 11. Re: Problems with installing latest version of Patrol products
                            Shaun Hemsley

                            something has changed in the way the new installer works then as we've never had to set it this way previously.

                             

                            also - the failure is inconsistent - sometimes the install works without issue.

                            • 12. Re: Problems with installing latest version of Patrol products
                              Shaun Hemsley

                              So after getting through all the above here's another error we've being seeing a lot of.  Once the agent starts DCM stops collecting and spits out the following error:

                               

                              Wed Jun 29 12:26:10 2011 : 1309314370 : DcmCol.psl: Reason for switch to PSL: DCM version can not be determined.Could not load program /opt/patrol/Patrol3/AIX5.3.0.0-64/best1/7.5.10/bgs/bin/dcm:     Dependent module /usr/lib/libstdc++.a(libstdc++.so.6) could not be loaded. The module has an invalid magic number.

                              • 13. Re: Problems with installing latest version of Patrol products
                                Garland Smith

                                The errors you are getting seem to indicate that there are problems with

                                shared library dependencies in

                                 

                                DCM/Perform Data Collector.  I would recommend that you open a case with BMC

                                Technical Support.

                                 

                                They should be able to help you determine the exact incompatibility.   There

                                are a number of knowledge

                                 

                                articles related to similar issues.

                                 

                                 

                                 

                                Regards,

                                 

                                 

                                 

                                Garland Smith

                                • 14. Re: Problems with installing latest version of Patrol products
                                  Garland Smith

                                  The following PSL code might produce additional diagnostics.  However, the

                                  diagnostics

                                   

                                  you already have available may be enough.  If you decide to run this PSL,

                                  cut and paste

                                   

                                  into a PSL  Task on the Patrol Console and capture the resulting PSL Task

                                  output.  This

                                   

                                  code was written to emulate the logic in PKM for Unix to determine DCM

                                  version.  This

                                   

                                  code is fairly old, however, it should still be relevant (however I cannot

                                  guarantee that).

                                   

                                   

                                   

                                  #

                                   

                                  1. Start PSL Code

                                   

                                  #

                                   

                                  function SwitchToPSL(reasonText) {

                                   

                                      print(reasonText."\n");

                                   

                                      return;

                                   

                                  }

                                   

                                  function fileTest(testOp,path)

                                   

                                  {

                                   

                                      retVal = read(popen("OS","sh -c 'test ".testOp." ".path.";echo $?'"));

                                   

                                      if (!retVal)

                                   

                                      {

                                   

                                          return TRUE;

                                   

                                      }

                                   

                                      else

                                   

                                      {

                                   

                                          return FALSE;

                                   

                                      }

                                   

                                  }

                                   

                                   

                                   

                                   

                                   

                                  function DCMVercheck(DCMHome,op)

                                   

                                  {

                                   

                                      local ver,pos,len,major,minor,patch,patch_to_compare;

                                   

                                   

                                   

                                      if ( op == BEST1_HOME){

                                   

                                         pos = rindex(DCMHome,"/");

                                   

                                         len = length(DCMHome);

                                   

                                         ver = substr(DCMHome,pos+1,len-pos);

                                   

                                         patch_to_compare = 40;

                                   

                                      }

                                   

                                      else{

                                   

                                         ver = DCMHome;

                                   

                                         patch_to_compare = 41;

                                   

                                      }

                                   

                                   

                                   

                                      major = int(nthargf(ver,1,"."));

                                   

                                      minor = int(nthargf(ver,2,"."));

                                   

                                      patch = int(nthargf(ver,3,"."));

                                   

                                      if ( major < 7 ){

                                   

                                         return 0;

                                   

                                      }

                                   

                                      if ( major > 7 ){

                                   

                                         return 1;

                                   

                                      }

                                   

                                      if ( minor > 1 ){

                                   

                                         return 1;

                                   

                                      }

                                   

                                   

                                   

                                      if ( minor < 1){

                                   

                                         return 0;

                                   

                                      }

                                   

                                   

                                   

                                      if ( patch < patch_to_compare ){

                                   

                                         return 0;

                                   

                                      }

                                   

                                   

                                   

                                      return 1;

                                   

                                  }

                                   

                                   

                                   

                                  function getBest1Home()

                                   

                                  {

                                   

                                  1.   Possible return values:

                                   

                                  #

                                   

                                  1.   BEST1_HOME path or NULL

                                   

                                  #

                                   

                                      B1Home = trim(nthlinef(pconfig("GET", "/UNIX_OS/PERFORM_HOME"), 2), "

                                  \t\n");

                                   

                                   

                                   

                                      if ( B1Home != ""){

                                   

                                          if(!DCMVercheck(B1Home,BEST1_HOME)){

                                   

                                          B1Home = "";

                                   

                                      }

                                   

                                      }

                                   

                                   

                                   

                                      if (B1Home == "") {

                                   

                                          B1Home = getenv("BEST1_HOME");

                                   

                                      }

                                   

                                   

                                   

                                      if ( B1Home != ""){

                                   

                                          if(!DCMVercheck(B1Home,BEST1_HOME)){

                                   

                                             B1Home = "";

                                   

                                          }

                                   

                                      }

                                   

                                   

                                   

                                      if (B1Home == "") {

                                   

                                  #

                                   

                                  1.       Construct path to best1rc.sh script

                                   

                                  #

                                   

                                          pathToBest1rcSh = phome."/../best1rc.sh";

                                   

                                          if (fileTest("-f",pathToBest1rcSh))

                                   

                                          {

                                   

                                              B1Home = trim(read(popen("OS","sh -c '. ".pathToBest1rcSh.";echo

                                  $BEST1_HOME'")),"\n");

                                   

                                          }

                                   

                                      }

                                   

                                      return B1Home;

                                   

                                  }

                                   

                                   

                                   

                                  phome = get("/patrolHome");

                                   

                                   

                                   

                                  1. Get BEST1_HOME.

                                   

                                   

                                   

                                  Best1Home = getBest1Home();

                                   

                                  BEST1_HOME = 0;

                                   

                                  if (Best1Home) {

                                   

                                    if (trim(ntharg(file(Best1Home, 1), 7), " \t\n") == "DIR") {

                                   

                                      if (!DCMVercheck(Best1Home,BEST1_HOME)){

                                   

                                         pconfig("REPLACE","/PUK/DCMMonitor/wait_time","-1");

                                   

                                      }

                                   

                                      elsif ( trim(pconfig("GET","/PUK/DCMMonitor/wait_time"),"\n") == "-1"){

                                   

                                         pconfig("DELETE", "/PUK/DCMMonitor/wait_time");

                                   

                                      }

                                   

                                      pconfig("REPLACE", "/UNIX_OS/PERFORM_HOME", Best1Home);

                                   

                                      RunArgs = RunArgs." -b ".Best1Home;

                                   

                                    }

                                   

                                    else

                                   

                                    {

                                   

                                      reasonText1 = "$BEST1_HOME (".Best1Home.") is not a directory.\n";

                                   

                                      SwitchToPSL(reasonText1);

                                   

                                      exit;

                                   

                                    }

                                   

                                  }

                                   

                                  else

                                   

                                  {

                                   

                                      reasonText2 = "$BEST1_HOME cannot be determined.\n";

                                   

                                      SwitchToPSL(reasonText2);

                                   

                                      exit;

                                   

                                  }

                                   

                                  print("$BEST1_HOME=".Best1Home."\n");

                                   

                                   

                                   

                                  #defaultAccount=get("/AgentSetup/defaultAccount");

                                   

                                  #defaultaccountusername = nthargf(defaultAccount,1,"/"); 

                                   

                                  #encryptedpassword = nthargf(defaultAccount,2,"/");

                                   

                                  #print("/AgentSetup/defaultAccount:  ".defaultAccount."\n");

                                   

                                   

                                   

                                  print("id: ".system("id"));

                                   

                                   

                                   

                                  env_cmd = "env";

                                   

                                  output = execute("OS",env_cmd);

                                   

                                  print("Output of env:\n".output."\n\n");

                                   

                                   

                                   

                                  dcm_cmd = Best1Home."/bgs/bin/dcm -v";

                                   

                                   

                                   

                                  output = execute("OS",dcm_cmd);

                                   

                                  print("/UNIX_OS/PERFORM_HOME: ".trim(nthlinef(pconfig("GET",

                                  "/UNIX_OS/PERFORM_HOME"), 2), " \t\n")."\n");

                                   

                                  print("dcm_cmd: ".dcm_cmd."\n");

                                   

                                  print("Output of dcm -v:\n".output."\n");

                                   

                                  ver = nthargf(output,1);

                                   

                                  print("ver:     ".ver."\n");

                                   

                                  if ( !isnumber(trim(ver,"."))){

                                   

                                        

                                   

                                       reasonText3 = "DCM version can not be determined.\n";

                                   

                                       SwitchToPSL(reasonText3);

                                   

                                  }

                                   

                                  else

                                   

                                  {

                                   

                                      print("No problem getting version...");

                                   

                                  }

                                   

                                  print("\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                                  +++++++++++++++++++++++++\n");

                                   

                                  find_cmd = "find ".Best1Home." -exec ls -l {}
                                  ;";

                                   

                                  output = execute("OS",find_cmd);

                                   

                                  print(output."\n");

                                   

                                  #

                                   

                                  1. End PSL Code

                                   

                                   

                                  1 2 Previous Next