IBM Support

"It seems that no FAPService is running..." when using named (non-default) instance of SQL server

Troubleshooting


Problem

User launches the FAP client (e.g. "IBM Cognos FAP" or 'IBM Cognos 8 FAP' for older versions). User enters the password and clicks 'Log in'. User receives error message. After click "OK" the FAP Client successfully opens, but the functionality will not work correctly (because the FAP Windows service is not functioning correctly).

Symptom

Screen:
It seems that no FAPService is running or FAPDb is started/restarted after FAPService.
Start/restart FAPService to make FAP work correctly.


"Error.log" (by default, located here: C:\Program Files (x86)\IBM\cognos\c10\server\FAP).
English:
2013-02-13 16:09:05,671 [schedulerThread] ERROR Scheduler - Connection error to FAP database
com.ibm.cognos.fap.common.exception.ConnectionException: Could not connect to: jdbc:sqlserver://SERVERNAMEinstancename;Database=DATABASENAME
at com.ibm.cognos.fap.common.persistence.dao.DbContext.getConnection(DbContext.java:72)
<....>
Caused by:

    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (The TCP/IP connection to the host SERVERNAMEinstancename, port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at com.ibm.cognos.fap.common.persistence.dao.DbContext.getConnection(DbContext.java:70)
    ... 9 more
    Caused by:
    com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host vbracontsql4latin1, port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".

Cause

There are many potential causes for the "It seems that no FAPService is running..." error.

  • For more examples, see separate IBM Technote #1424705.

This Technote specifically relates to the scenario where the log file also contains a message "Could not
connect to: jdbc:sqlserver://SQLSERVERNAMEinstancename;Database=databasename".
  • In this scenario, the cause is that the "IBM Cognos FAP Service" Windows service has not started correctly because the settings inside the file "FAPService.properties" are incorrect
  • Specifically, this is due to the wrong nomenclature used to configure the FAP service to use a non-default SQL TCP port.

More Information:
Imagine a scenario where the FAP database is hosted on a SQL server called "SQLSERVERNAME", but *not* on the default instance.
  • Instead, the database is hosted on an instance called "instancename".

The administrator (incorrectly) configures the file "FAPService.properties" (by default located on the Controller application server here: C:\Program Files (x86)\IBM\cognos\c10\server\FAP) with the following text:
    db=databasename
    host=SQLSERVERNAME\instancename
    dbType=sqlserver

The above is incorrect. The correct nomenclature should be either:
    host=SQLSERVERNAME\\instancename

or
    host=SQLSERVERNAME:tcpportnumber

Environment

Customer is hosting the FAP database on a SQL server which is not running on the default instance (e.g. "SQLSERVERNAME").

  • Instead, it is running/hosted on a 'named' SQL instance (e.g. "SQLSERVERNAME\instancename")

Resolving The Problem

Perform both of the following:

(1) (Most importantly) modify the file "FAPService.properties" to use the correct nomenclature.

  • For instructions, see separate IBM Technote #1417314.

(2) Afterwards, when launching FAP client, ensure that value inside "Server" box uses the correct (JAVA compatible) nomenclature.
  • See below for instructions.

Steps for (2) - to ensure that value inside "Server" box uses the correct (JAVA compatible) nomenclature:
If using a non-default instance, this would be: <SERVERNAME>,<TCP_port>
  • TIP: If unsure of the TCP port, see section below for instructions on how to locate this value.

For example, if your SQL server name was "SQLSERVERNAME" and your instance was running on TCP port 1434 then the correct syntax would be:
    SQLSERVERNAME,1434


Alternative Method
If desired, there is an alternative method where you:
  • Create a SQL Native Client "Alias" on the device which is running the FAP client.
  • Configure the Alias to use to the instance's TCP port number.
  • Finally, use this alias name when using the FAP Client.

Steps for Alternative Method:
TIP: The following is based on SQL 2005. For other versions, the steps may vary slightly.

Part One - Checking the TCP port of the SQL instance.
  1. Logon to the SQL server as a Windows administrator
  2. From the Start Menu, launch "SQL Server Configuration Manager"
  3. Expand the section 'SQL Server 2005 Network Configuration'
  4. Highlight "Protocols for INSTANCENAME" (where "INSTANCENAME" is the instance name of your server)
  5. Double-click on the entry "TCP/IP"
  6. Click the tab "IP Addresses"
  7. There may be several sections (for example "IP1", "IP2" and "IPAll"). Inside each of these, there is a section for 'TCP Port'. TIP: The default instance is typically set to 1433, but your 'instancename' will be configured to use a different number (for example 1434)

Part Two - Creating the SQL Native Client Alias.
  1. Logon to the client device (i.e. the device where you are launching the FAP Client) as a Windows administrator
  2. From the Start Menu, launch "SQL Native Client Configuration (32-bit)"
  3. Open the section "Aliases"
  4. Create a new entry (for example called "ControllerSQL")
  5. Configure the "Port No" to be the value found in part one (e.g. 1434)
  6. Configure the "Server" to be the name of your SQL server (e.g. "SQLSERVERNAME")


Part Three - Launching the FAP Client
When launching the FAP Client (e.g. FAP Connect), make sure that you use the new 'Alias' name (e.g. "ControllerSQL") inside the section "Server":

[{"Product":{"code":"SS9S6B","label":"IBM Cognos Controller"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Controller","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.5.1;10.1;10.1.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
15 June 2018

UID

swg21623075