Submit a ticketCall us

Don’t fall victim to a ransomware attack
Backups are helpful, but sometimes that’s not enough to protect your business against ransomware. At our live webcast we will discuss how to protect against ransomware attacks with SolarWinds® Patch Manager and how to leverage log data to detect ransomware. Register now for our live webcast.

Home > Success Center > Database Performance Analyzer (DPA) > ORA-01461: can bind a LONG value only for insert into a LONG column

ORA-01461: can bind a LONG value only for insert into a LONG column

Overview

The following error or similar are found in the DPA (Ignite) logs:

org.quartz.JobExecutionException: TextPollJob failed [See nested exception: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO CONST_4 (H, P, ST, SS, SE, PNAME, LN, TRUNCATED, D) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [72000]; error code [1461]; ORA-01461: can bind a LONG value only for insert into a LONG column

Note: The location of the error can change. For example, it can occur in modules other than TextPollJob.

Monitored instance will not start monitoring. 

 

 SQL [INSERT INTO CONST_4 (H, P, ST, SS, SE, PNAME, LN, TRUNCATED, D) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [72000]; error code [1461]; ORA-01461: can bind a LONG value only for insert into a LONG column
; nested exception is java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate

Environment

DPA  

Oracle repository 

 

Cause 

Character encoding can be a cause. 

Historically database columns which hold alphanumeric data have been defined using the number of bytes they store. This approach was fine as the number of bytes equated to the number of characters when using single-byte character sets.

With the increasing use of multi-byte character sets to support globalized databases comes the problem of bytes no longer equating to characters.

 

So this can be caused when DPA is inserting into the Text poll or Plan poll tables. 

Resolution

Two possible resolutions exist 

resolution 1: 

  1. Edit the <ignite_home>/iwc/tomcat/ignite_config/idc/repo.properties file on the Ignite PI server and add the following line:
    repo.additionalProperties=oracle.jdbc.RetainV9LongBindBehavior=true
  2. Restart the Ignite PI Server.
    • Windows: Restart the Ignite PI service.
    • UNIX or Linux: Run the following:
      1. shutdown.sh
      2. startup.sh

resolution 2: 

  1. In case the text is too long. We can set DPA to try to split it into smaller chunks, though in some edge cases those might be still too long in case of multi-byte characters.
    The chunk size is controlled by an Advanced Options > System Options > Support Options > DOUBLE_BYTE_CHUNK_LENGTH and NON_DOUBLE_BYTE_CHUNK_LENGTH for double-byte and single-byte repository respectively.
  2.  Please  lower the value in the corresponding field by a few hundred to see if that helps. DPA will still get all the data stored in the table, it'll just split into more rows.
Last modified
11:43, 15 May 2017

Tags

Classifications

Public