반응형
mariadb에서 상태 쿼리 오류 표시
로컬 mariadb 서버에 주기적으로 접속하여 복제 상태를 조회하는 jdbc 클라이언트(아래 코드 참조)가 있습니다.
private void closeResultSet(ResultSet rs) {
try {
rs.close();
} catch (Exception e) {}
}
private void closeStatement (Statement st) {
try {
st.close();
} catch (Exception e) {}
}
private void closeConnection(Connection c) {
try {
c.close();
} catch (Exception e) {}
}
public boolean getStatus() {
boolean status = false;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//Class.forName("com.mysql.jdbc.Driver");
Class.forName("org.mariadb.jdbc.Driver");
// System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "SHOW STATUS LIKE 'wsrep_%'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = rs.getString(1);
String value = rs.getString(2);
if (name != null && !name.isEmpty() && value != null && !value.isEmpty())
{
System.out.println(value);
}
}
status = true;
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
closeResultSet(rs);
closeStatement(stmt);
closeConnection(conn);
} // end try
if (!status)
return status;
}
public void run()
{
while(true) {
if (!getStatus())
//failed
break;
else {
sleep 60s
}
}
}
~3시간 후에 봅니다.
java.sql.SQL 비일시적 연결예외: (conn:17945) 결과 집합을 읽을 수 없음: 예기치 않은 스트림 끝, 4에서 0바이트 읽기
제 코드에 무슨 문제라도 있습니까?
"(conn:17945)"가 어떻게든 지속 가능한 최대치 이상의 연결 수가 증가하고 있다는 것을 의미하는지 궁금합니다.
MariaDB에 문제가 있는 것 같습니다. 이에 대한 해결책은 당신이 그것을 유지해야 한다는 점에서 이상한 것 같습니다.wait_timeout
그러한 문제를 근절하기 위해 상당히 더 긴 기간 동안!
데이터베이스 연결을 위해 더미 유효성 검사 쿼리를 넣는 것을 고려해 볼 수 있습니다.이 쿼리가 도움이 될 수도 있습니다!
validationQuery="SELECT 1"
위와 함께 상당히 유효한 값을 설정해야 할 수도 있습니다. 예를 들어 8시간 정도입니다.
set wait_timeout=57600
이 링크는 유사한 줄에 대한 정보를 제공하여 참고할 수 있도록 하고 관련 토론에 대한 이 질문도 제공합니다.
도움이 되길 바랍니다!
언급URL : https://stackoverflow.com/questions/41332193/show-status-query-error-in-mariadb
반응형
'sourcecode' 카테고리의 다른 글
Apache-POI 행 정렬(Excel) (0) | 2023.09.25 |
---|---|
IPv6 호환 주소를 관계형 데이터베이스에 저장하는 방법 (0) | 2023.09.25 |
각 2에서 $임의치는 무엇입니까? (0) | 2023.09.25 |
Swift에서 CGFloat 반올림 (0) | 2023.09.25 |
IntelliJ의 @ConfigurationProperties를 사용하여 Spring Boot Configuration Annotation Processor를 구성하는 방법은 무엇입니까? (0) | 2023.09.25 |