Install and maintain the MSSQL SqlClient writer¶
Install¶
Install matching core and companion versions in the Linux x86-64 execution
image. The companion requires Microsoft.NETCore.App 10.x.
pip install "dpone[clickhouse,mssql-sqlclient]==0.88.0"
dpone runtime mssql-sqlclient doctor --format json
The doctor is read-only. It verifies the package tree, descriptor, .NET runtime,
writer identity, and an executable Python/C# session-identity parity vector. It
does not open a database connection. Exit 0 means ready: true; exit 2
returns a closed readiness document with stable blocker_codes.
{"backend":"mssql_sqlclient","blocker_codes":[],"ready":true,"runtime_major":10,"schema_version":"dpone.mssql-sqlclient.doctor.v1"}
Upgrade¶
- Reconcile every retained invocation with
dpone ops mssql-native-recovery. - Build a new immutable execution image with core and companion from the same minor line. The certified release set uses the same exact version for both distributions so operators can pin one immutable version.
- Run the doctor in that image.
- Run the synthetic campaign for the exact candidate commit.
- Start new invocations on the new image. Do not resume an old invocation with a different writer or layout identity.
Candidate certification v1 receipts are not migration inputs. Version 0.88.0 requires image/cell v2, runner v4, and campaign v3 receipts regenerated from the exact clean commit.
Remove or roll back¶
Reconcile all UNKNOWN, PREPARED, and custody-retaining invocations first.
Change new manifests back to import_backend: bcp, build a matching image, and
only then remove the optional package:
Keep journals, receipts, recovery plans, and the generic transaction catalog until retention policy proves that no invocation references them. Uninstalling the companion does not authorize deleting a stage or replaying an uncertain grant.
Readiness blockers¶
| Code | Operator action |
|---|---|
mssql_sqlclient.optional_package_required |
Install the version-matched extra. |
mssql_sqlclient.unsupported_platform |
Move execution to Linux x86-64. |
mssql_sqlclient.runtime_unavailable |
Install Microsoft.NETCore.App 10.x. |
mssql_sqlclient.invalid_descriptor |
Reinstall the exact companion package. |
mssql_sqlclient.artifact_unavailable |
Rebuild or reinstall the wheel. |
mssql_sqlclient.artifact_identity_mismatch |
Replace the changed package tree; never bypass the digest. |
mssql_sqlclient.application_identity_unverified |
Replace the image; Python and C# session identity do not agree. |
mssql_sqlclient.companion_unavailable |
Inspect the image and reinstall the exact package. |
Container user and temporary home¶
The companion supports a non-root numeric UID without an /etc/passwd entry.
For each writer launch, the supervisor supplies a private writable HOME with
mode 0700, then removes it after the process has settled. If process termination
cannot be confirmed, the directory is retained and cleanup remains unresolved.
This lets SqlClient
initialize its TLS support without inheriting the host user's home or credentials.
The runtime must be able to create temporary directories; no operator-supplied
HOME or shared writable home is required.