반응형

API를 통해 JSON 데이터를 받아

version의 NEWIVERSION을 찾아 NSUserDefaults에 값을 저장하는 로직입니다.

 

 

    NSString *ver = [[mainInfoDict objectForKey:@"version"] objectForKey:@"NEWIVERSION"];      if (ver != nil) {         [[NSUserDefaults standardUserDefaults] setObject:ver forKey:@"NEWIVERSION"];         [[NSUserDefaults standardUserDefaults] synchronize];     } 

 

그런데 API에 문제가 생겨 NEWIVERSION을 가져오지 못하게 되자

시뮬레이터에서 App이 죽는 현상이 발생하더군요.

 

Attempt to set a non-property-list object null as an NSUserDefaults/CFPreferences value for key NEWIVERSION

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object null for key NEWIVERSION'

 

NEWIVERSION key를 갖는 값 자체가 존재하지 않다 보니

Null 객체 insert 오류가 생겼던 거 같습니다.

 

그래서 NSNull 객체 검사를 추가해 봤습니다. 

 

    NSString *ver = [[mainInfoDict objectForKey:@"version"] objectForKey:@"NEWIVERSION"];      if (ver != nil &&         ![ver isEqual:[NSNull null]]) {         [[NSUserDefaults standardUserDefaults] setObject:ver forKey:@"NEWIVERSION"];         [[NSUserDefaults standardUserDefaults] synchronize];     } 

 

이렇게 처리하고 나니 API에서 오류가 발생해도 App 중지 없이 실행할 수 있었습니다.

 

 

반응형
반응형

AIX 7.11 서버에서 소켓통신을 통해 데이터를 수신하는데

텍스트 내용이 잘리는 현상이 발생하였습니다.

 

그래서 실제 서버에서 수신되는 패킷을 확인해야만 했는데,

AIX 에서는 tcpdump 를 사용해서는 원하는 내용을 확인하기 어렵더군요.

 

그래서 관련 내용을 검색하다 보니

AIX 에서는 iptrace 를 사용한다는 내용을 찾았습니다.

 

그래서 급하게 iptrace 사용법을 찾아봤습니다.

 

 

옵션  설명 
 -a  ARP 패킷은 표시하지 않음 
 -i <interface>  패킷 모니터를 할 인터페이스 
 -s <source ip>  패킷 출발지 IP 
 -b  bidirectional 양방향 패킷을 모두 모니터 
 -d <destination ip>  패킷 도착지 IP  
 -p <port>  모니터할 포트 지정 

 

iptrace -a -i en0 -s 123.123.123.123 -b -d 234.234.234.234 -p 8888 /home/krcash/iptrace

 

en0 인터페이스를 통해

IP 123.123.123.123 와 IP 234.234.234.234 가

8888 포트로 주고 받는 패킷을 모니터해서

/home/krcash/iptrace 파일로 저장

 

이렇게 실행하면 iptrace 프로세스의 프로세스 ID를 리턴하고

패킷을 모니터해서 저장하기 시작합니다.

 

 



저장을 마치려면 kill -15 로 프로세스를 종료합니다.

 

 



Can't turn off tracing 메시지가 떨어지지만

ps 로 확인하면 프로세스가 죽은 걸 확인할 수 있습니다.



/home/krcash 에 iptrace 라는 파일명으로 생성된 것을 볼 수 있습니다.

 

 



이 파일은 바이너리 파일이기 때문에

텍스트 형태로 변환이 필요합니다.

 

ipreport -ns /home/krcash/iptrace > /home/krcash/iptrace.log

 

/home/krcash/iptrace 를 iptrace.log 라는 텍스트 파일로 변환합니다.

 

 



이제 해당 파일을 열어보면

주고 받은 패킷의 내용을 확인할 수 있습니다.

 

 




참조

IBM Using packet trace tools iptrace, snoop, tcpdump, wireshark, andnettl

http://www-01.ibm.com/support/docview.wss?uid=swg21175744




반응형
반응형

Oracle Instant Client 이용하여 Toad 사용하기

 

1. Instant Client 설치

 

1) Instant Client 다운로드 URL: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

 

 

 

 

2) 라이센스 동의 후 Instant Client 다운로드

* 토드 버전에 따라 Instant Client 버전을 선택해서 다운로드 받습니다.

Toad 10.X  Instant Client 11.X 이하 
 Toad 9.X  Instant Client 10.X 이하 

 

 

 

 

3) 적당한 위치에 압축 해제

* 압축 해제 후 임의 위치에 저장합니다.

  예) C:\oracle\instantclient_10_2

 

 

 

2. 환경설정

* 고급 시스템 설정에서 다음의 환경변수를 등록, 추가해 줍니다.

 Path   C:\oracle\instantclient_10_2 (추가)  오라클 설치 디렉토리(임의 지정)
 NLS_LANG  KOREAN_KOREA.KO16MSWIN949  언어 설정
 TNS_ADMIN  C:\oracle\instantclient_10_2  tnsnames.ora 위치(임의 지정) 

 

 

 

 

 

3. tnsnames.ora 저장

* TNS_ADMIN 지정 위치에 tnsnames.ora 를 저장합니다.

 

 

 

4. Toad 확인

* 모든 설정 확인 후 Toad 실행해서 확인해 봅니다.

   Connect Using 에 검은색으로 표시되고 TNSNames Editor 에 체크 표시가 나오면 정상입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

Tmax Jeus에서 Web Admin 종료하기 (Jeus6 기준)

 

JEUS 웹어드민 화면

JEUS 웹 어드민 화면

 

 

1. Jeus WAS 종료

 

 

2. {JEUS_HOME}/config/{APP_NAME}/JEUSMain.xml 수정

 

node > enable-webadmin > true → false 변경

 

 JEUS_HOME Jeus 설치 디렉토리 
 APP_NAME 어플리케이션(서비스) 이름 

 

 

3. Jeus WAS 재기동

 

 

JEUS 웹 어드민 찾을 수 없음

JEUS 웹 어드민 찾을 수 없음

반응형

+ Recent posts