Package org.firebirdsql.jaybird.props

## Interface ServiceConnectionProperties

All Superinterfaces:
  `AttachmentProperties`, `BaseProperties`

All Known Subinterfaces:
  `BackupManager`, `IServiceProperties`, `MaintenanceManager`, `NBackupManager`, `ServiceManager`, `StatisticsManager`, `TraceManager`, `UserManager`

All Known Implementing Classes:
  `FBBackupManager`, `FBBackupManagerBase`, `FbImmutableServiceProperties`, `FBMaintenanceManager`, `FBNBackupManager`, `FBServiceManager`, `FbServiceProperties`, `FBStatisticsManager`, `FBStreamingBackupManager`, `FBTraceManager`, `FBUserManager`

    public interface ServiceConnectionProperties
    extends AttachmentProperties

Properties for services.

Since:
  5
Author:
  Mark Rotteveel

### Method Summary

All Methods Instance Methods Default Methods
`default java.lang.String` `getExpectedDb()` Gets the expected db (`isc_spb_expected_db`; defaults to `null`).
`default java.lang.String` `getServiceName()` Gets the service name (defaults to `"service_mgr"`).
`default void` `setExpectedDb​(java.lang.String expectedDb)` Filename or alias of the database expected to be accessed by the service operation (`isc_spb_expected_db`).
`default void` `setServiceName​(java.lang.String serviceName)` Sets the service name

### Methods inherited from interface org.firebirdsql.jaybird.props.AttachmentProperties

`getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEncoding, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt`

### Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties

`connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty`

### Method Detail

#### getServiceName

    default java.lang.String getServiceName()

Gets the service name (defaults to `"service_mgr"`).

Returns:
  database name
See Also:
  `setServiceName(String)`

#### setServiceName

    default void setServiceName​(java.lang.String serviceName)

Sets the service name

When `serverName` is `null`, then the value is taken as the URL of the service, and exact interpretation depends on the protocol implementation (`type`). Examples:

- //localhost/ — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example; will fail on Firebird 2.5 and earlier)
- localhost — NATIVE, PURE_JAVA, OOREMOTE
- //localhost:3051/ — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example; will fail on Firebird 2.5 and earlier)
- //localhost/service_mgr — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
- localhost:service_mgr — NATIVE, PURE_JAVA, OOREMOTE
- //localhost:3051/service_mgr — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
- localhost/3051:service_mgr — NATIVE, PURE_JAVA, OOREMOTE
- service_mgr — NATIVE, EMBEDDED, PURE_JAVA, OOREMOTE (PURE_JAVA and OOREMOTE will use localhost as `serverName`, depending on the Firebird version and platform, NATIVE may use Firebird Embedded)
- xnet://service_mgr — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may attempt to connect to a server called `xnet`) TODO: Check if actually valid
- other Firebird `fbclient` connection URLs — NATIVE, (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may interpret the protocol name as a host name
- Custom `type` implementations may support other URL formats

Some protocols, for example PURE_JAVA, when `serverName` is not set, but `serviceName` doesn't seem to contain a host name, may default to attempting to connect to localhost with `serviceName` as the service.

When `serverName` is set, the value is taken as the database path or alias. Examples:

- service_mgr
- empty string TODO verify if that works
- `null`

Parameters:
  `serviceName` - service name

#### getExpectedDb

    default java.lang.String getExpectedDb()

Gets the expected db (`isc_spb_expected_db`; defaults to `null`).

Returns:
  expected database
See Also:
  `setExpectedDb(String)`

#### setExpectedDb

    default void setExpectedDb​(java.lang.String expectedDb)

Filename or alias of the database expected to be accessed by the service operation (`isc_spb_expected_db`).

For Firebird 3.0 and higher when using a non-default security database, so Firebird knows which database to use to authenticate. When using the default security database, this property does not need to be set.

Some service implementations (e.g. `BackupManager`) may explicitly set this as part of their operation when its current value is `null`.

Parameters:
  `expectedDb` - Expected database