<a id="ms-sql-source-connector-config"></a>

# Configuration Reference for Microsoft SQL Server Source Connector for Confluent Platform

#### IMPORTANT
This connector is no longer available or supported by Confluent. Please use
the [SQL Server Source Connector](https://docs.confluent.io/debezium-connect-sqlserver-source/current/).

To use this connector, specify the name of the connector class in the `connector.class` configuration property.

```properties
connector.class=io.confluent.connect.cdc.mssql.MsSqlSourceConnector
```

Connector-specific configuration properties are described below.

## Database Connection

`initial.database`
: The initial database to connect to.
  <br/>
  * Type: string
  * Importance: high

`password`
: JDBC Password to connect to the database with.
  <br/>
  * Type: password
  * Importance: high

`server.name`
: The database server to connect to.
  <br/>
  * Type: string
  * Importance: high

`server.port`
: The port on the database server to connect to.
  <br/>
  * Type: Int
  * Importance: high

`username`
: JDBC Username to connect to the database with.
  <br/>
  * Type: string
  * Importance: high

`change.tracking.tables`
: The tables in the source database to monitor for changes. If no tables are specified the `[sys].[change_tracking_tables]` view is queried for all of the available tables with change tracking enabled.
  <br/>
  * Type: list
  * Importance: medium
  * Default Value: []

`jdbc.pool.max.idle`
: The maximum number of idle connections in the connection pool.
  <br/>
  * Type: Int
  * Importance: medium
  * Default Value: 10

`jdbc.pool.max.total`
: The maximum number of connections for the connection pool to open. If a number greater than this value is requested, the caller will block waiting for a connection to be returned. This setting is shared across all of the tasks for a given database.
  <br/>
  * Type: Int
  * Importance: medium
  * Default Value: 30

`jdbc.pool.min.idle`
: The minimum number of idle connections in the connection pool.
  <br/>
  * Type: Int
  * Importance: medium
  * Default Value: 3

`instance.name`
: The instance name for the SQL Server we are connecting to.
  <br/>
  * Type: string
  * Importance: low

`multi.subnet.failover.enabled`
: Flag to enable the multisubnet failover option.
  <br/>
  * Type: Boolean
  * Importance: low
  * Default Value: false

## Schema

`schema.key.name.format`
: Format used to generate the name for the key schema. The following template variables are available for string replacement. `${databaseName}`, `${schemaName}`, `${tableName}`, `${namespace}`
  <br/>
  * Type: string
  * Importance: high
  * Default Value: ${namespace}.${tableName}Key

`schema.namespace.format`
: The namespace for the schemas generated by the connector. The format in this setting will be used to create the `${namespace}variable`, which is available for use in the other configuration templates. The following template variables are available for string replacement. `${databaseName}`, `${schemaName}`, `${tableName}`, and `${namespace}`.
  <br/>
  * Type: string
  * Importance: high
  * Default Value: com.example.data.${databaseName}

`schema.value.name.format`
: Format used to generate the name for the value schema. The following template variables are available for string replacement. `${databaseName}`, `${schemaName}`, `${tableName}`, `${namespace}`
  <br/>
  * Type: string
  * Importance: high
  * Default Value: ${namespace}.${tableName}Value

`schema.cache.ms`
: The number of milliseconds to cache key and value schema metadata in memory.
  <br/>
  * Type: Int
  * Importance: low
  * Default Value: 300000
  * Valid Values: [60000,…]

`schema.caseformat.column.name`
: This setting is used to control how the column names are cased when the resulting schemas are generated.
  <br/>
  * Type: string
  * Importance: low
  * Default Value: UPPER_UNDERSCORE
  * Valid Values: `LOWER_HYPHEN`, `LOWER_UNDERSCORE`, `LOWER_CAMEL`, `LOWER`, `UPPER_CAMEL`, `UPPER_UNDERSCORE`, `UPPER`, `NONE`

`schema.caseformat.database.name`
: This setting is used to control how the `${databaseName}` variable is cased when it is passed to the formatters defined in the `schema.namespace.format`, `schema.key.name.format`, `schema.value.name.format`, `topicFormat.format` settings. This allows you to control the naming applied to these properties. For example, this can be used to take a database name of `USER_TRACKING` to a more java like case of `userTracking` or all lowercase `usertracking`.
  <br/>
  * Type: string
  * Importance: low
  * Default Value: UPPER_UNDERSCORE
  * Valid Values: `LOWER_HYPHEN`, `LOWER_UNDERSCORE`, `LOWER_CAMEL`, `LOWER`, `UPPER_CAMEL`, `UPPER_UNDERSCORE`, `UPPER`, `NONE`

`schema.caseformat.input`
: The naming convention used by the database format. This is used to define the source naming convention used by the other `schema.caseformat.*` properties.
  <br/>
  * Type: string
  * Importance: low
  * Default Value: UPPER_UNDERSCORE
  * Valid Values: `LOWER_HYPHEN`, `LOWER_UNDERSCORE`, `LOWER_CAMEL`, `UPPER_CAMEL`, `UPPER_UNDERSCORE`

`schema.caseformat.schema.name`
: This setting is used to control how the `${schemaName}` variable is cased when it is passed to the formatters defined in the `schema.namespace.format`, `schema.key.name.format`, `schema.value.name.format`, `topicFormat.format` settings. This allows you to control the naming applied to these properties. For example this can be used to take a schema name of `SCOTT` to a more java like case of `Scott` or all lowercase `scott`.
  <br/>
  * Type: string
  * Importance: low
  * Default Value: UPPER_UNDERSCORE
  * Valid Values: `LOWER_HYPHEN`, `LOWER_UNDERSCORE`, `LOWER_CAMEL`, `LOWER`, `UPPER_CAMEL`, `UPPER_UNDERSCORE`, `UPPER`, `NONE`

`schema.caseformat.table.name`
: This setting is used to control how the `${tableName}` variable is cased when it is passed to the formatters defined in the `schema.namespace.format`, `schema.key.name.format`, `schema.value.name.format`, `topicFormat.format` settings. This allows you to control the naming applied to these properties. For example this can be used to take a table name of `USER_SETTING` to a more java like case of `UserSetting` or all lowercase usersetting.
  <br/>
  * Type: string
  * Importance: low
  * Default Value: UPPER_UNDERSCORE
  * Valid Values: `LOWER_HYPHEN`, `LOWER_UNDERSCORE`, `LOWER_CAMEL`, `LOWER`, `UPPER_CAMEL`, `UPPER_UNDERSCORE`, `UPPER`, `NONE`

## Source Database

`backoff.time.ms`
: The number of milliseconds to backoff when no records are returned from the source database.
  <br/>
  * Type: Int
  * Importance: low
  * Default Value: 1000
  * Valid Values: [50,…]

## Target

`topicFormat.format`
: The format that will be used to build the topic name. This allows database tables to be broken up across several topics. The following template variables can be used for string replacements. `${databaseName}`, `${schemaName}`, `${tableName}`, `${namespace}`
  <br/>
  * Type: string
  * Importance: high
  * Default Value: ${databaseName}.${tableName}

`batch.size`
: The target number of records to return during each poll from the Connect framework. This setting is independent from the general producer setting `batch.size`
  <br/>
  * Type: Int
  * Importance: low
  * Default Value: 512
  * Valid Values: [1,…]

`uncomitted.record.max`
: The maximum number of records to allow in memory. Once this limit is reached the record deque will block to prevent running out of memory.
  <br/>
  * Type: Int
  * Importance: low
  * Default Value: 50000
  * Valid Values: [100,…]

`uncomitted.record.timeout.ms`
: The maximum amount of time to wait when writing to the deque before throwing a timeout exception.
  <br/>
  * Type: long
  * Importance: low
  * Default Value: 300000
  * Valid Values: [100,…]
