Arcot Adapter issue when used with MS SQL server

Document ID : KB000047973
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

If MS SQL database is used for storing the tokens, then the State
Manager fails to retrieve the risk evaluation data from the database.
This leads to authentication failure. This is applicable for versions prior to Arcot Adapter 2.2.7 .

arcotsm.log file will contain the following error message for the issue-

2010-11-20 18:29:28,875 [http-8443-Processor24] DEBUG server.tsmimpl.iBatisTSMImpl(51) -> Asked to read token 9c7d841b74dee43af1caad7e6d3d7d94de766c4d, 'include risk' flag: true
2010-11-20 18:29:28,906 [http-8443-Processor24] DEBUG server.tsmimpl.iBatisTSMImpl(87) -> Unable to read token 9c7d841b74dee43af1caad7e6d3d7d94de766c4d: com.ibatis.common.jdbc.exception.NestedSQLException:

--- The error occurred in com/arcot/integrations/toksvr/server/tsmimpl/TsToken.xml.
--- The error occurred while applying a result map.
--- Check the TsToken.artb.
--- Check the result mapping for the 'tsRiskData' property.
--- Cause: java.sql.SQLException: Datatype Mismatch. DataType Found ::-1
2010-11-20 18:29:28,906 [http-8443-Processor24] ERROR toksvr.server.TokenManager(296) -> Unable to read token for update (9c7d841b74dee43af1caad7e6d3d7d94de766c4d): Error 3: Storage error

Solution:

  1. 1. In a text editor, open TsToken.xml file from the following location:

    NOTE: The TsToken.xml file is bundled inside the arcotsm.war file. The location mentioned here is specific to Apache Tomcat. If you are using other application sever, then refer to the application server's documentation for corresponding path.

    <application_server_home>\webapps\<application_context_root>\WEB-

    INF\classes\com\arcot\integrations\toksvr\server\tsimple

  2. In the TsToken.xml file, replace the following line of code:

    <result property="tsRiskData" column="TSRISKDATA" jdbcType="CLOB" typeHandler="com.ibatis.sqlmap.engine.type.ClobTypeHandlerCallback"/>

    with

    <result property="tsRiskData" column="TSRISKDATA"/>

  3. Save the file and restart the application server.