달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
.. .. ..
인터넷에는 여러 다른 대처법이 나와있지만 결국은 JDBC 의 버젼문제였던것 같다.
소스를 수정하지말고 JDBC를 교체하여 해보는 방법이 가장 안전한듯 싶다.
 
CASE 1 : setXXX 부분에
           if (XXX == null){
             this.XXX = "";
            }

CASE 2 : JDBC 교체

'I.lib() > I.lib(etc)' 카테고리의 다른 글

하드 플스 관련 주소  (0) 2011.04.26
주루마블  (0) 2010.12.27
[펌] 호스트 파일 ( Hosts file )  (1) 2010.08.13
아이폰 개발자 등록 절차  (0) 2010.06.25
OSGi 란?  (0) 2010.05.27
.
:
Posted by .07274.
.. .. ..
/oracle/app/oracle/product/920/network/admin/tnsnames.ora
.
:
Posted by .07274.
2010. 8. 20. 16:21

[ ALTIBASE ] DATABASE IMPORT / EXPORT I.lib()/I.lib(Altibase)2010. 8. 20. 16:21

.. .. ..

1. OS Command ( 디스크 정보 확인. )

df -k

Available Partition Check

 

2. Memory  ( Table 정보 확인. )

select

    b.user_name || '.' || a.table_name table_name,

    round((c.fixed_alloc_mem+c.var_alloc_mem)/1024/1024,3) alloc,

    round((c.fixed_used_mem+c.var_used_mem)/1024/1024,3) used,

    round((c.fixed_used_mem+c.var_used_mem)*100/ (c.fixed_alloc_mem+c.var_alloc_mem),2) '%USED'

from system_.sys_tables_ a, system_.sys_users_ b, v$memtbl_info c

where a.user_id = b.user_id

    and a.table_oid = c.table_oid

    and a.tbs_id=0

    and b.user_name <> 'SYSTEM_'

    and a.table_type='T'

order by 2 desc


3.Data export
( db의 테이블의 정보를 파일로 받아내린다.)

- table 의 컬럼 정보를 내려 받는다.

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWORK -p chrhthr formout -f DBWORK_IP_CUR_SESSION.fmt -T IP_CUR_SESSION

f: formout 생성옵션

( T: 작업대상 테이블의 이름 )

 

- table의 데이터를 정해진 구분자를 이용해 파일로 내려 받는다. )

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWOK -p **** out -f DBWORK_IP_CUR_SESSION.fmt -d IP_CUR_SESSION.dat -log IP_CUR_SESSION.log -r "^T-t^%n" -t "^C-c^"

(  r: 라인 및 로우 구분자

t: 컬럼구분자

d: 떨어뜨릴 데이터 파일 이름 )

 

4.Data import  ( 내려받은 데이터 파일을 db에 넣는다. Db에 동일한 스키마를 가진 테이블이 필요 )

- 정해진 테이블에 데이터를 정해진 구분자 규칙에 따라 입력한다.

${ALTIBASE_HOME}/bin/iloader -s 127.0.0.1 -u DBWOk -p ****in -f DBWORK_IP_CUR_SESSION.fmt -d IP_CUR_SESSION.dat -log IP_CUR_SESSION.bad -array 100 -commit 2000 -r "^T-t^%n" -t "^C-c^"

(  Array: 통신 비용을 줄이기 위한 배열 옵션 권장값은 100 ~ 200

Commit: 2000건마다 커밋을 하겠다. 권장값은 1000 ~ 3000 )


 

 

.
:
Posted by .07274.
.. .. ..
AIO 와 관련해서 AIX 버전과 관계없이 posix_aio0 커널 값이 Available 로 설정되어 있어야 한다. 만약 Available 로 설정되어
있지 않은 경우 서버 구동이 실패하며 다음과 같은 메시지를 확인할 수 있다. AIO 의 값은 다음과 같이 확인할 수 있다.

$ lsdev -C |grep aio
aio0 Available Asynchronous I/O (Legacy)
posix_aio0 Defined Posix Asynchronous I/O


위와 같이 posix_aio0 값이 Defined 로 설정되어 있다면 smit 를수행한 후 Device > Asynchronous I/O > Posix Asynchronous I/O > Configure Defined Asynchronous I/O 에서 posix_aio0 를 Defined 에서 Available 로 변경한다.
AIO 가 설정되어 있지 않을 경우 알티베이스 구동 시 다음과 같은 에러 메시지가 출력된다.

$ altibase –v
Could not load program altibase:
Symbol resolution failed for
/usr/lib/threads/libc.a[posix_aio_64.o] because:
Symbol _posix_kaio_rdwr64 (number 2) is not exported from
dependent module /unix.
Symbol _posix_listio64 (number 3) is not exported from
dependent module /unix.
.
:
Posted by .07274.
2010. 8. 13. 15:00

[펌] 호스트 파일 ( Hosts file ) I.lib()/I.lib(etc)2010. 8. 13. 15:00

.. .. ..

검색창에 blog.naver.com(호스트 이름)을 입력하면 자동으로 121.156.68.57(IP 주소)를 찾아서 접속됐지만
내 컴퓨터야, 이제부터는 접속할 IP 주소를 직접 지정해주겠어.
blog.naver.com = 127.0.0.1

1. 호스트 파일(hosts file) : 운영 체제에서 사용되는 파일로서 호스트 이름(인터넷에 연결된 컴퓨터 이름. 주로 도메인)에 대응하는(mapping) IP 주소가 저장되어 있어서 도메인 이름 시스템(DNS)[변환 혹은 번역된 주소 정보 제공(호스트 이름↔IP 주소)]에서 주소 정보를 제공받지 않고도 호스트(서버)의 위치를 찾게 해줍니다.

인터넷에 연결된 컴퓨터는 상대방 컴퓨터의 IP 주소(숫자 형식으로 된 주소. 예시:121.156.68.57)를 알아야 
통신이 가능합니다. '도메인 이름 시스템(DNS:Domain Name System)' 도입 이후 외우기 쉬운 알파벳 주소
(예시:blog.naver.com)
를 사용할 수 있게 되었습니다. 이것은 '도메인 이름 서버(DNS:Domain Name Server)'가 호스트 이름에 대응하는 IP 주소 정보(또는 반대로)를 제공하기 때문입니다. 즉, 예전에는 IP 주소만으로 사이트에 접속해야 했지만 지금은 알파벳 형식의 호스트 이름을 사용해도 DNS가 그것에 대응하는 IP 주소로 번역/제공해주므로 사이트 접속이 가능해졌습니다.

[잠깐 참고] 도메인과 IP 주소


만약 도메인 네임 서버에 호스트 이름과 IP 주소의 대응정보가 등록되어 있지 않거나 클라이언트 호스트(웹 서비스를 제공받는 컴퓨터)가 네임 서버로부터 변환된 주소 정보를 제공받지 못하면 IP 주소가 없어서 서버(웹 서비스를 제공하는 컴퓨터)로 접속할 수 없게 됩니다. 대신에 클라이언트의 로컬 컴퓨터의 호스트 파일(hosts file)에 호스트 이름에 대응하는 IP 주소를 직접 등록해주면 호스트 이름을 사용할 때 이 IP 주소를 참고해 서버로 접속할 수 있게 됩니다. '도메인 네임 서버(DNS:Domain Name Server)'에서 IP 주소 정보를 제공받지 않아도 통신을 할 수 있게 됩니다.

2. 호스트 파일이 저장된 위치



Windows 95/98/Me : C:\windows\hosts
Windows NT/2000/XP : C:\windows\system32\drivers\etc\hosts 또는 C:\winnt\system32\drivers\etc\hosts


원본 : http://corset.tistory.com/85

'I.lib() > I.lib(etc)' 카테고리의 다른 글

주루마블  (0) 2010.12.27
ojdbc14 // 부적합한 열 유형 에 대한 대처법. // oracle  (3) 2010.09.06
아이폰 개발자 등록 절차  (0) 2010.06.25
OSGi 란?  (0) 2010.05.27
페이스북,트위터 기능  (0) 2010.03.22
.
:
Posted by .07274.
.. .. ..

create table tb_ip_XXXX

(   IPS                                  VARCHAR(15)     FIXED   NOT NULL ,

    IPE                                      VARCHAR(15)     FIXED   NOT NULL ,

    INTIPS                                   BIGINT          FIXED   NOT NULL ,

    INTIPE                                   BIGINT          FIXED   NOT NULL ,

    CONSTRAINT TB_IP_XXXX_IDX_PR1 PRIMARY KEY (IPS,IPE)

);  CREATE INDEX tb_ip_XXXX_idx1 ON tb_ip_XXXX(INTIPS,INTIPE)



CREATE UNIQUE INDEX PK_USER_MENU ON TB_USER_MENU(USER_GRP_CD, MENU_ID) TABLESPACE KTIDP_IDX;

.
:
Posted by .07274.
2010. 8. 11. 11:09

테이블 복사 스크립트 I.lib()/I.lib(Altibase)2010. 8. 11. 11:09

.. .. ..
insert into tb_xxxx
(  PSAID , TELURI , OID , HDONGCODE , POSTALCODE , ADDRESS , RDATE , ODATE , IP , IP_ADDR )
select
     PSAID , TELURI , OID , HDONGCODE , POSTALCODE , ADDRESS , RDATE , ODATE , IP , IP_ADDR
 from  TB_xxxx2;
.
:
Posted by .07274.
2010. 7. 30. 14:21

REDHAT VERSION (버젼) 정보 I.lib()/I.lib(Unix)2010. 7. 30. 14:21

.. .. ..

1. 터미널 진입.

2. /etc 폴더로 이동 
    ==>  cd /etc/

3. cat redhat-release 라는 명령어를 친다.
   ==> /etc]# cat redhat-release


CentOS , RedHat 모두 이와 같은 방식으로 버젼정보를 알수있다.

'I.lib() > I.lib(Unix)' 카테고리의 다른 글

VI로 문자열 바꾸기.  (0) 2010.11.04
Crontab 설정  (0) 2010.10.11
^M 문자열이 생기는 이유 & 삭제 방법  (0) 2010.07.16
chmod 설정 (사용법)  (0) 2010.07.15
bash shell prompt setting ( 프롬프트 설정 )  (2) 2010.06.23
.
:
Posted by .07274.
.. .. ..

JNI ( JAVA Native Interface )

ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 개발팀 이재석


SULINUX 홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr


  1. JNI ( JAVA Native Interface ) ?

자바로 만들어진 프로그램에서 특정 플랫폼에서만 실행되는 코드

(Native Code)에 접근하기 위한 API이다.


Native code를 생성하는 다른 언어와 함께 공동작업을 하거나

하드웨어어 보다 깊게 접근하여 컨트롤도 가능하지만

플랫폼이 제한된다는 단접이 있다.


  1. 사용방법 및 코드 작성법


1단계 : Native Method를 선언하는 자바 클래스 작성

2단계 : 1단계에서 작성한 클래스 컴파일

3단계 : javah를 사용해서 Native Method가 사용할 헤더 파일 생성

4단계 : C언어로 Native Method 실제 구현

5단계 : C 코드와 헤더 파일을 컴파일

6단계 : 자바 프로그램 실행



위에서 보는것 처럼 6단계로 나누어 작업을 하게 된다.



1단계 : Native Method를 선언하는 자바 클래스 작성



public class tt {

  static {
      //
시스템 라이브러리 로드(so,dll)
      System.loadLibrary("tt");

      System.out.println("=== library was loaded");

  }

  //native method 선언
  public native String main1();
  public native String main2();

  public static void main(String[] args)  throws Exception {

      mains1();
      mains2();

  }

  public static String mains1()  throws Exception {

      return new tt().main1();

  }

  public static String mains2()  throws Exception {

      return new tt().main2();

  }

}





2단계 : 1단계에서 작성한 클래스 컴파일



javac tt.java





3단계 : javah를 사용해서 Native Method가 사용할 헤더 파일 생성



javah tt





4단계 : C언어로 Native Method 실제 구현



#include <jni.h>
#include "tt.h"
#include <stdio.h>

JNIEXPORT jstring JNICALL Java_tt_main1(JNIEnv *, jobject)
{
   printf("Hello, world\n");

   return 0;
}

JNIEXPORT jstring JNICALL Java_tt_main2(JNIEnv *, jobject)
{
   printf("Hello, world1\n");

   return 0;
}





5단계 : C 코드와 헤더 파일을 컴파일



vc   : cl -Ic:\jdk1.3.1\include -Ic:\jdk1.3.1\include\win32 -LD HelloWorld.c


gcc  : cc –G –I/usr/local/java/include –I/usr/local/java/include/solaris HelloWorld.c –o libhelloworld.so



6단계 : 자바 프로그램 실행



java tt

=== library was loaded
Hello, world
Hello, world1





3. JAVA에서 Native code로 파라메타 넘겨주기


JAVA SOURCE


public class Test {

  public native String maint(String msg);

    static {
        System.loadLibrary("Test");
    }

}


NATIVE SOURCE

#include <jni.h>
#include "Test.h"
#include "NativeStringUtil.h"

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

JNIEXPORT jstring JNICALL
Java_Test_maint(JNIEnv *env, jobject obj, jstring str)
{
    char buf[1024];
    char *str;
    str1 = jbyteArray2str1( env, javaGetBytes(env, str) );
    sprintf(buf, "%s:%s", str1, "반가워요 이건 C함수에서 넘겨준 겁니다.");
    return javaNewString( env, cstr2jbyteArray(env, buf));
}



            java에서 public native String maint(String msg)
            여기서 넘어온 스트링값을  Native code에서
            str1 = jbyteArray2str1( env, javaGetBytes(env,
            str) ); 위와 같은  방식으로  받아온다.


       4. 마치며

           앞에서도 언급 하였듯이 java에서 직접 네이티브 코드를 호출하여 
           이용할 수 있다.

           네이티브 코드를 생상할수 있는 다른 언어와도 협업작업이 쉬워지고 
           아키텍쳐에 따른 하드웨어 콘트롤 역시 가능하며 
 
            메모리 컨트롤이나 CPU컨트롤시 보다 디테일 하게 컨트롤이 가능하다

           하지만 Native code를 생산하고 이용하게 됨으로 
           특정 아키텍쳐나 플랫폼에 종속될수 밖에 없고 
           다양한 플랫폼을 지원 하려면 그많큼 수고로울수 밖에 없다 .
           
           보는바와 같이 장단점을 잘 숙지해야 하겠다. 

'I.lib() > I.lib(Java)' 카테고리의 다른 글

Spy 설정 방법.  (1) 2011.03.31
SPY 설정 방법. ( tomcat + axis2 + ibatis )  (0) 2010.10.28
Heapdump 파일 생성 이유  (0) 2010.05.19
JNDI 란?  (1) 2010.04.08
자바 리플랙션 (Java Reflection)  (1) 2010.03.29
.
:
Posted by .07274.
.. .. ..

문 : 서버에 파일을 올려 VI 편집기를 사용해 파일을 열어볼시에 ^M 문자열이 각 행 끝에 붙는다. 이유는 ?

답 : FTP전송 시에 바이너리 모드로 전송하여 그렇습니다. ASCII모드로 전송하면 됩니다.
===> UNIX시스템에서는 다음라인으로 넘어갈 때 뉴라인(0x0a)만 있으면 되지만 PC에서는 캐리지 리턴(0x0d)와 뉴라인(0x0a)가 둘다 있습니다. 
  이와같은 텍스트 형태의 파일을 서버로 올리면서 Binary mode로 전송하면 0x0d와 0x0a가 모두 전송됩니다. 그런데 텍스트 에디터(vi editor)로 보면 0x0d는 특수문자처럼 보이는 겁니다.
문 : ^M을 삭제하는 방법

답 :  1. vi filename으로 읽어 들인다.
       2. :1,$s/^M//g하면 됩니다. 여기서 ^M을 입력하는 방법은 Ctrl+V하고 Ctrl+M하면 됩니다.
            Ctrl+V는 컨트롤문자를 입력하겠다는 의미입니다.
.
:
Posted by .07274.