Điểm:1

Idle database connection lost

lá cờ in

I am able to connect to the database server (Firebird), run queries, all those fun things, but after an undetermined period of inactivity, the next query attempt generates the following error

Unable to complete network request to host "XX.XX.XX.XX".
Error writing data to the connection.
An existing connection was forcibly closed by the remote host. .

SQL Error (code = -902):
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.

When operating interactively using Firebird Maestro (relevance unknown), after I get this error I tell Maestro to disconnect. I am then able to run a query.

I don't know whether the timeout is coming from Firebird or the Linux server or elsewhere on our network and I don't know enough about Linux or AWS or our network to know where to look for possibilities. (the joys of being a programmer at a very small company)

lá cờ sk
Tôi không quen lắm với Firebird và bạn không đề cập đến lỗi đến từ chương trình/ngôn ngữ nào, nhưng có lẽ bạn chỉ cần bật KeepAlives trong thiết lập/cấu hình kết nối (nghĩa là khi phần mềm máy khách của bạn tạo kết nối, chỉ định vật lưu giữ).
WeststarEric avatar
lá cờ in
@ChrisS Vì vậy, bạn đang gợi ý rằng tôi nên bỏ qua phần về "máy chủ từ xa buộc phải đóng" và cố gắng ghi đè hành vi ở phía máy khách? Thật không may, điều đó liên quan đến cách thức hoạt động của Maestro hoặc công cụ lập trình của tôi và tôi nghĩ rằng đó không phải là chủ đề của diễn đàn này.
Điểm:0
lá cờ ae

Bất kể thời gian chờ đến từ đâu, bạn nên chuẩn bị cho nó. Thậm chí có thể có nhiều thời gian chờ và kết nối của bạn sẽ bị loại bỏ sau một thời gian không hoạt động.

Tốt nhất bạn nên sử dụng thư viện tổng hợp kết nối và chỉ định thời gian chờ ngắn hơn thời gian chờ bạn quan sát được hiện tại (trừ khi thời gian chờ thấp đến mức không thể chấp nhận được).

Nó có thể hữu ích nếu bạn mô tả chi tiết việc triển khai của mình nhưng tôi nghĩ, cuối cùng, bạn cần khắc phục phía máy khách.

WeststarEric avatar
lá cờ in
Tôi có thể thấy nhóm kết nối sẽ làm cho kết nối ít có khả năng không hoạt động như thế nào nếu có nhiều người dùng đồng thời. Trong trường hợp có thể chỉ có một người dùng, tôi muốn biết nguyên nhân gây ra ngắt kết nối để tôi có thể kiểm soát khoảng thời gian chờ.
lá cờ ae
Bạn chưa cho chúng tôi biết nhiều về việc triển khai của bạn nên không dễ để đưa ra bất kỳ lời khuyên nào cho bạn về điều đó. Tổng hợp kết nối có ý nghĩa ngay cả khi bạn chỉ có một người dùng. Tôi khuyên dùng HikariCP: https://github.com/brettwooldridge/HikariCP#microscope-analyses - cấu hình thời gian chờ của chúng cũng có thể thú vị: https://github.com/brettwooldridge/HikariCP#microscope-analyses
WeststarEric avatar
lá cờ in
Thật không may, tôi đã nói với bạn mọi thứ tôi biết về triển khai "của tôi". Công ty nhỏ, doanh thu nhiều, chuyên môn không nhiều. Tôi đã hy vọng cho một số gợi ý về nơi để tìm.
lá cờ ae
Bạn chắc chắn biết nhiều hơn thế. Bạn chưa đề cập đến bất kỳ chi tiết cụ thể nào về ứng dụng hoặc máy lưu trữ ứng dụng và cơ sở dữ liệu. Dù sao, bạn đã kiểm tra tài liệu của họ chưa? https://firebirdsql.org/file/documentation/chunk/en/refdocs/fblangref40/fblangref40-manager-timeouts.html

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.