{"id":23359898,"url":"https://github.com/markmll/testdb","last_synced_at":"2025-06-17T22:37:08.820Z","repository":{"id":186929014,"uuid":"675985138","full_name":"MarkMLl/testdb","owner":"MarkMLl","description":"Illustrate problems when connections are lost while DB-aware controls are active, and provide advance warning.","archived":false,"fork":false,"pushed_at":"2023-08-12T14:15:13.000Z","size":168,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T20:54:21.201Z","etag":null,"topics":["database-component","ide","object-pascal","postgresql"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkMLl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-08T07:11:27.000Z","updated_at":"2023-08-13T09:37:31.000Z","dependencies_parsed_at":"2023-08-08T09:39:56.683Z","dependency_job_id":"7910682b-58e8-42d4-a8cf-81d16c69f4fc","html_url":"https://github.com/MarkMLl/testdb","commit_stats":null,"previous_names":["markmll/testdb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MarkMLl/testdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMLl%2Ftestdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMLl%2Ftestdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMLl%2Ftestdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMLl%2Ftestdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkMLl","download_url":"https://codeload.github.com/MarkMLl/testdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkMLl%2Ftestdb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260452115,"owners_count":23011405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-component","ide","object-pascal","postgresql"],"created_at":"2024-12-21T11:12:22.937Z","updated_at":"2025-06-17T22:37:03.808Z","avatar_url":"https://github.com/MarkMLl.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is experimental code oriented towards a PostgreSQL server, although much of it is applicable to other backends.\n\nIt illustrates that DB-aware components are prepared to accept work even if the underlying connection has failed, only throwing an error when a transaction commit is forced. Failure might be caused by, for example, the server daemon timing out due to a laptop running the client having been in a sleep state, or the client IP address being changed.\n\nIt includes investigation of the extent to which the user can at least be alerted of potential problems by recovering the client port number from the Postgres state, and using the ident protocol (port 113) to verify that there is a live connection.\n\nThis is in no way a complete implementation, for example it should indicate immediately if the client IP address has changed rather that relying on a server timeout.\n\nAny attempt to reconnect is \"left as an exercise\". However comments from the HA community suggest that loss of a session might result in intractable problems if the state of an in-progress transaction is lost.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmll%2Ftestdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkmll%2Ftestdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkmll%2Ftestdb/lists"}