Clarity

 View Only
  • 1.  v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 09:59 AM

    Clarity 14.3

    I am updating our GEL scripts after an upgrade from 12.1.3 to 14.3 and have come across a really strange error.

    As part of our upgrade we have new servers so the XOG endpoint address obviously needs to change in the scripts where XOG is used.  I typically have a XOGURL parameter defined in the script, and I have changed the value to be the new address. e.g. http://banana.axa-uk.intraxa.

    My script tags on /niku/xog to the XOGURL variable when I invoke the endpoint.

     

    When I run the script it fails immediately with the error below (I've blacked out the server name), on the initial call to log in and get a session ID

    Capture.JPG

    It is appending the XOGURL variable (without the /niku/xog part) again to the endpoint variable and trying to connect to that.

    I have tried hard coding the server/niku/xog path in the script and removing the parameter entirely and it still does it.

     

    Any ideas?  I'm stumped.



  • 2.  Re: v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 10:09 AM

    You can try using the new keyword "internal" for the XOG endpoint. This selects the CA PPM endpoint URL automatically.

     

    <soap:invoke endpoint="internal" var="result">
      <soap:message>...</soap:message>
    </soap:invoke>



  • 3.  Re: v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 03:40 PM

    Thanks,  I do vaguely remember seeing this mentioned in release documentation in the past.

     

    It's kind of progress, it now goes to our friendly URL for our load balanced cluster, and is not appending anything to the endpoint - http:\\ca-ppm.***.xxxx/niku/xog but doesn't connect.  We have been having load balancer/certification issues in trying to get SSL properly working, perhaps that is something to do with it.  We have work in progress to make some changes so if that resolves this then I'll post here.  In the meantime, does anyone else have any suggestions?



  • 4.  Re: v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 04:04 PM

    Not an answer at all, but in this thread  GEL - possible SSL error? nick_darlington suggests that sort of error may be SSL related, so perhaps that is the root cause and the GEL/XOG problems are more of a symptom of that rather than something that can be "fixed" in your GEL?

     



  • 5.  Re: v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 04:17 PM

    For the other thread, I make that conclusion on the basis of the endpoint URL in use and the message that followed: HTTPS hostname wrong: should be <xxxxx>

     

    In this case I cannot see more of the error message to determine further, but:

     

    - The use of http:// protocol makes me think - unless this was an accident typo in the URL - that we don't have an SSL issue in this case

    - The format of the error showing 'http://yourserver/niku/xog'.yourserver/niku/xog is not meaning to indicate that it has appended some invalid portion of the host/url onto itself, it's just a quirk of this error message format that it does it this way.

    - Without more of the error, which might be residing in the bg-ca log file, I'd be making guesses as to the cause - do you see anything in that log that might give more indication?

    - However, my first guess would be to make sure that the bg service where your process is running can actually resolve the hostname you are using.  Some servers don't always have their DNS configuration in the same ways as the client machines, meaning that it may be necessary to modify a /etc/hosts file or similar in order to add the entry for an external or load balanced URL, otherwise the server is only used to resolving it by some other internal (and often unfriendly) designator instead.  Can you go the shell or command prompt of the server where your bg is running, and do an nslookup on the hostname to make sure it resolves?



  • 6.  Re: v14.3 XOG endpoint error in GEL script

    Posted Apr 26, 2016 07:10 PM

    Hi Owen,

    I had a similar issue when moving to the new PPM version 14.3.  We also modified our Load Balancer to have a web tier in between the Load Balancer and application servers.

     

    I created a "workaround" by populating my "" with my actual server address.  Example:

     

    Then, I use the following code to pull the value in the GEL script:<gel:set asString="true" select="$properties/properties/webServer/@schedulerUrl" var="EntryURL"/>

    This totally avoids the Load Balancer.

    <!-- ****************************************GET THE XOG URL FROM THE APPLICATION **********************************************-->
    <gel:parse file="../config/properties.xml" var="properties"/>
    <gel:set asString="true" select="$properties/properties/webServer/@schedulerUrl" var="EntryURL"/>

    <core:invokeStatic className="com.niku.union.config.ConfigurationManager" method="getInstance" var="config"/>
             <core:set value="0" var="v_IsLocal"/>
    <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getId()}" var="WebServerid"/>

       <core:if test="${WebServerid == 'app'}">
          <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getAddress()}" var="AddressIp"/>
    <!-- Replaced "EntryURL" from the Properties.xml file with "scheduler entry url" from Properties.xml file -->
    <!--      <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getEntryUrl()}" var="EntryURL"/>-->
          <core:set value="${config.getProperties().getWebServer().getWebServerInstance(0).getPort()}" var="Port"/>

          <core:if test="${EntryURL == 'http://localhost'}">
    <gel:log level="INFO" message="NULL ADDRESS IS LOCAL... "/>
             <core:set value="1" var="v_IsLocal"/>
             <core:set value="${EntryURL}" var="AddressIp"/>
          </core:if>
       </core:if>

       <core:if test="${WebServerid == 'nsa'}">
          <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getAddress()}" var="AddressIp"/>
    <!-- Replaced "EntryURL" from the Properties.xml file with "scheduler entry url" from Properties.xml file -->
    <!--      <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getEntryUrl()}" var="EntryURL"/>-->
          <core:set value="${config.getProperties().getWebServer().getWebServerInstance(1).getPort()}" var="Port"/>
          <core:if test="${EntryURL == 'http://localhost' }">
    <gel:log level="INFO" message="NULL ADDRESS IS LOCAL... "/>
             <core:set value="1" var="v_IsLocal"/>
             <core:set value="${EntryURL}" var="AddressIp"/>
          </core:if>
       </core:if>
       <core:if test="${Port != null }">
          <core:set value="${EntryURL}:${Port}" var="EntryURL"/>
       </core:if>
       <core:if test="${v_IsLocal == 0 }">
          <core:if test="${AddressIp != '' }">
             <core:set value="http://${AddressIp}" var="EntryURL"/>
          </core:if>
       </core:if>

    <gel:log level="INFO">EntryURL: "${EntryURL}"</gel:log>
    <!--Set value for XOGURLAUTO (auto detected using above code)-->
    <core:set value="${EntryURL}/niku/xog" var="XOGURLAUTO"/>
    <!-- ***************************************END GET XOG URL ***********************************-->