Error: java.net.MalformedURLException: no protocol: ${getExtAttr(nps_npshostandport)}

  • KM01216331
  • 20-Oct-2014
  • 10-Oct-2017

Summary

The error message "java.net.MalformedURLException: no protocol: ${getExtAttr(nps_npshostandport)}" is observed in the nnm-trace.log files when trying to launch the "HP NNM iSPI Performance > Reporting Menu", this happens if the NPS FQDN and port information is not stored in the NNMi DB.

Error

The following message is logged to the nnm-trace.log file when attempting to launch the iSPI for Performance Reports from within the NNMi console using the Reporting Menu (Actions > HP NNM iSPI Performance > Report – Reporting Menu)

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/ssoservlet].[Redirect Servlet]] (tomcat-exec-6) Servlet.service() for servlet Redirect Servlet threw exception: java.net.MalformedURLException: no protocol: ${getExtAttr(nps_npshostandport)}/PerfSpi/PerfSpi?Interface%20UUID=${uuid}&package=<ExtensionPack>

The following is the message seen in the Web Page when this problem happens
  
HTTP Status 500 -
type Exception report
message
description
The server encountered an internal error () that prevented it from fulfilling this request.
note



Cause

About Network Node Manager-i series (NNMi) iSPI for Performance Metrics and the Network Performance Server (NPS)

The Network Node Manager-i series (NNMi) iSPI for Performance Metrics and the Network Performance Server (NPS) can be installed in the same server as NNMi (co-located) environment, dedicated single server (stand-alone, not distributed environment) or on multiple dedicated servers (distributed environment). In all of those scenarios, the NNMi server needs to be informed of the NPS Fully Qualified Domain Name (FQDN) and the port on which the Business Intelligence (BI) Server (also known as the Reporting Engine) is listening to and the protocol in use, to be able to cross launch the performance reports from within the NNMi console.
 
Information required for the integration

If the following information about the NPS server has not been configured in NNMi, the error message occurs, because NNMi is unable to recover the NPS hostname and port from the NNMi DB
  • Protocol in use (HTTP or HTTPs)
  • Web Server Port on which the BI server is listening
  • FQDN of the BI server
 
Configuration

This information is configured during the NPS and NNMi integration steps. The script nnmenableperfspi.ovpl is required to be run to enable the integration, during the script execution all the information required to enable the communication between the NNMi and NPS servers is requested, including the protocol, the web port, and the FQDN.

Example

Note: Some output is omitted
[root@myNNM ~]# nnmenableperfspi.ovpl
--------------------------------------------------------------------------
Enable NNM iSPI Performance
--------------------------------------------------------------------------
This script provides a simple mechanism to enable integration of NNMi with the Network Performance Server. The following tasks need to be completed before performance reporting can begin.
 
<<<<OUTPUT OMMITED HERE>>>>
 
Enter values for the following parameters, an empty response results in the default value [shown in brackets] being used.
 
<<<<OUTPUT OMMITED HERE>>>>
 
Fully qualified hostname for the Network Performance Server server [myNNM.test.hp.com]:
myNPS.test.hp.com
Network Performance Server port number [9300]:
9300
Network Performance Server protocol (http|https) [http]:
http
 
 
After providing all the required information, the script will run to completion through different stages. Some of the stages are
  • Copying PMI files
  • Removing any existing metrics actions
  • Enabling metrics actions
  • Update extended properties
  • and more…
 
This can be observed in the output generated by the script.
 
 
Cause of the problem

It is possible that the execution of the script nnmenableperfspi.ovpl failed leaving the system in this unstable state, where the integration information was not inserted into the NNMi configuration. The causes of this failure could be various but should happen only rarely.

The NPS server information is registered into NNMi during the “Update extended properties” stage of the script execution.

Example of a successful completion of this stage
Updating extended Properties updated in NNMi
 Reading file /var/opt/OV/shared/perfSpi/datafiles/nnm_details.xml
 FQDN file path /var/opt/OV/conf/nnm/props/nms-local.properties
 Exporting property http://myNPS.test.hp.com:9300
Updating NNMi running at myNNM 80 443
 Exporting host and port property http://myNPS.test.hp.com:9300
Extended Properties updated in NNMi
 
Example of an unsuccessful attempt of this stage
Updating extended Properties updated in NNMi
 Reading file /var/opt/OV/shared/perfSpi/datafiles/nnm_details.xml
 FQDN file path /var/opt/OV/conf/nnm/props/nms-local.properties
 Exporting property http://myNPS.test.hp.com:9300
Updating NNMi running at myNNM.test.hp.com 80 443
 Exporting host and port property http://myNPS.test.hp.com:9300
1    [main] ERROR org.jboss.ws.core.CommonClient  - Exception caught while (preparing for) performing the invocation:
 javax.xml.ws.soap.SOAPFaultException: org.hibernate.exception.SQLGrammarException: could not execute query at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:88)
 
Note: In this particular scenario the failure was related to the access to the NNMi DB.
 
Log File

Every time the script is executed, it creates the following log file that can be consulted for information. It includes the standard output generated by the script and the information provided during execution , unfortunately the error messages and exceptions are not recorded in this file.
Linux: /var/opt/OV/log/nnmenableperfspi.txt
Windows: %NnmDataDir%\log\nnmenableperfspi.txt
 
When this problem happens it is possible that the “PerfSPI” application has not been successfully registered in NNMi, this results in the following output to be “empty” when only the iSPI for Performance Metrics is integrated with NNMi or not to include the “PerfSPI” application when other applications (such as the iSPI for Performance Traffic) are. It is also possible that the output below does contain the PerfSPI application but the root cause of the problem is the same. The output below is not a 100% accurate indication that the information has been successfully stored in the NNMi DB.

Note: The outputs below may be slightly different on your system.
Command

Linux: /opt/OV/support/nnmtwiddle.ovpl invoke com.hp.ov.nms.topo:service=NetworkApplication printConfiguration
Windows: %NnmInstallDir%\support\nnmtwiddle.ovpl invoke com.hp.ov.nms.topo:service=NetworkApplication printConfiguration

Example (iSPI for Performance Traffic and Metrics are installed, Linux)

When properly registered

[root@myNNM  ~]# /opt/OV/support/nnmtwiddle.ovpl invoke com.hp.ov.nms.topo:service=NetworkApplication printConfiguration
Application = PerfSPI
Application = traffic
 

When not properly registered (notice that PerfSPI is not reported)
[root@myNNM  ~]# /opt/OV/support/nnmtwiddle.ovpl invoke com.hp.ov.nms.topo:service=NetworkApplication printConfiguration
Application = traffic

Fix

1.      Execute the nnmenableperfspi.ovpl and provide all the requested information
2.      Monitor the output of the script to detect any problems or error messages
3.      If error messages are found please troubleshoot accordingly.
o   A list of possible error messages is not provided since there could be very various messages. In most cases the message should provide detailed information to pin-point the problem and problems with the execution with script should happen very rarely.
4.      Try to launch the Reporting Menu again from within the NNMi console
 
Workaround

This problem affects only the cross-launching of the NPS Reports from within the NNMi console when using the “Reporting Menu”, the NPS server should continue to work normally and the user should be able to manually launch the reports by accessing the following URL with the NPS server information

<protocol>://<FQDN>:<port>
 

Example
http://myNPS.test.hp.com:9300/

If already logged in to NNMi, the NPS console will be launched immediately, if not logged in, the login information will be requested and then the user will be redirected to the NPS console.