java.net.InetAddress.getLocalHost().getAddress() delay, slow

AIX 5.3
IBM JDK6 (64bit)

에서 동작하는 자바프로그램에서 위 메소드 실행하는 부분에서 약 5초가량의 지연이 발생

항상 발생하는 것이 아니고 비정기적? 이지만 꾸준히 발생함

삽질 고고

 

Advertisements

linux (java application) -> oracle Connection delay 현상

신규로 세팅한 linux (redhat 2.6.32) 버전에서 내부망에 있는 oracle로 db커넥션이 이상하게 30~40 초나 걸리는 현상이 발생하였다.

네트워크 방화벽을 의심했으나 tcpdump를 떠보니 신규로 세팅한 linux 서버쪽에서 db서버로 P flag에 해당하는 ack를 20초 이상 지연하여 응답하고 있었다.

jdk-1.7.80, jdk-1.6.45, jdk-1.6.31  등 여러버전으로 시도했으나 동일하게 지연이 발생

구글링을 하던도중 아래 글에서 해결책을 찾음

관련 URL : http://stackoverflow.com/questions/5503063/oracle-getconnection-slow

예전에 고객사에 납품한 솔루션 제품에서 어느날 갑자기 지연이 발생하여 2달가량 삽질하다가 당시에도 렌덤값을 구하는 엔트로피 머시깽이에서 지연이 발생했다란 것과 유사해보였다

 

동일한 에러에 대해 좀더 디테일하게 설명해준 글 주소http://opendatabase.tistory.com/entry/WAS-%EC%97%90%EC%84%9C-DB%EB%A1%9C-%EC%A0%91%EC%86%8D-%EB%B6%88%EA%B0%80-javasqlSQLRecoverableException-IO-Error-Connection-reset

20170517_0120170517_0320170517_04

 

[결론]

자바실행 쉘에 아래 옵션을 추가하니 해결되었다 (1.7, 1.6 에서 모두 동작함을 확인하였음)

-Djava.security.egd=file:/dev/./urandom

 

IBM JAVA 다운로드 경로 & 설치 정보 페이지

구페이지

http://www.ibm.com/developerworks/java/jdk/

cap-2016-10-27-14-24-52-250

신페이지

https://developer.ibm.com/javasdk/downloads/

NEW_IBM_JAVA.PNG

 

IBM 자바 설치관련 공식정보 – 이거시 바이블… -ㅅ-;;

http://www.ibm.com/support/knowledgecenter/ko/SSYKE2_6.0.0/com.ibm.java.doc.user.aix32.60/user/aix_relocation.html

 

JAVA 컴파일 및 실행

LINUX 환경에서…

cd classes 한 후

#java 컴파일 (방법1)
/app/jdk/jdk1.7.0_80/bin/javac -d . -cp ../lib/*: /app/MINA-PROXY/src/org/apache/mina/proxy/*

#java 컴파일 (방법2)
/app/jdk/jdk1.7.0_80/bin/javac -Xlint -d . -cp ../lib/mina-core-2.0.13.jar:../lib/slf4j-api-1.7.21.jar: /app/MINA-PROXY/src/org/apache/mina/proxy/*

#실행실패
/app/jdk/jdk1.7.0_80/bin/java -Xms128m -Xmx256m -classpath .:./classes/org/apache/mina/proxy/*:./lib/*:./conf: org.apache.mina.proxy.Main

#정상실행 (방법1)
/app/jdk/jdk1.7.0_80/bin/java -Xms128m -Xmx256m -classpath .:./classes/:./lib/*:./conf: org.apache.mina.proxy.Main 8080 127.0.0.1 8021 30

#정상실행 (방법2)
/app/jdk/jdk1.7.0_80/bin/java -Xms128m -Xmx256m -cp .:./classes/:./lib/*:./conf: org.apache.mina.proxy.Main 8080 127.0.0.1 8021 30

 

실행시 classes 디렉토리이하에 있는 class 파일을 모두 적용하겠다고 아래처럼 * 를 넣으면 안된다.
/classes/: <– 이렇게 설정하면 된다.
-classpath .:./classes/*:

mysql, jdbc, db insert java 샘플 (작성중)

1. mysql jdbc 드라이버 다운
– 경로 : http://dev.mysql.com/downloads/connector/

Cap 2015-01-04 17-24-46-547

– Connector/J 선택

Cap 2015-01-04 17-26-51-988

Platform independent 선택하여 둘 중에 하나 선택하여 다운로드 한다.

Cap 2015-01-04 17-29-23-063

다운로드 된 녀석을 압축 풀면 커넥터 드라이버 파일을 찾을수 있다.

Cap 2015-01-04 17-30-15-985

docs 안에 들어있는 문서를 보고 샘플코드를 짜보자

2. 샘플코드

FileWriter 8192 byte 이상 저장이 안될때, (java 파일 이어쓰기)

입력 파일을 읽어 DB작업후 결과를 파일로 기록하는 프로그램 작성중

결과파일이 8192 바이트 이상 기록이 안되고 있었다.


FileWriter fw = null;
BufferedWriter bw = null;

while((line=in.readLine())!= null){
	fw = new FileWriter(resultPath, true); // true 옵션을 주면 파일 이어쓰기가 가능해진다.
	bw = new BufferedWriter(fw);

// db작업

if(성공) {
	StringBuffer sb = new StringBuffer();
	sb.append(line);
	sb.append(&quot;,성공&quot;);
	bw.write(sb.toString());
	bw.newLine();
		bw.close();
} else {
	StringBuffer sb = new StringBuffer();
	sb.append(line);
	sb.append(&quot;,실패&quot;);
	bw.write(sb.toString());
	bw.newLine();
	bw.close();
}

fw.close();

음 워드프레스에서 소스같은걸 편하게 보여주려면 어케해야하려나…

SQLSERVER 2008 JDBC 드라이버 연결

MSSQL과 JDBC 연결과 관련한 정보를 찾기가 힘들어 정리함.

1. JDBC 드라이버를 구하는 방법

 – MSDN 사이트에서 받는게 가장 확실하다 (2005,2008,2008 R2, 2012 버전들 모두 준비되있다)

 – http://msdn.microsoft.com/ko-kr/library/ms378526(v=sql.90).aspx

 

2. SQLSERVER 2008과 연결시 사용해야하는 jar : sqljdbc4.jar