[Oracle] 오라클 리스너 서비스 TNSListener가 계속 중지된다. DataBase

갑자기 오라클 리스너 서비스가 계속 중지되는 현상이 발생한다.
컴퓨터 관리 > 서비스 목록에서 수동으로 시작을 해도 곧 몇초만에 다시 중지된다.
리스너 설정시 리스너 정보를 설정했지만 어느순간엔가(?) 설정관련 파일이 원복되는 현상이 발생했다.
이럴땐 리스너 정보를 다시 설정!

오라클 10g일 경우 아래 파일을 확인한다.
%ORACLE_HOME%은 오라클이 설치된 홈 디렉토리

%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

[tnanames.ora]
ORCL = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = VocDev)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
      (SRVR = DEDICATED)
    )
  )

[listener.ora]
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = VocDev)(PORT = 1521))
    )
  )

위 두 파일에서 HOST 값을 확인한다. DB서버의 IP와 일치하는지 확인한다.
앞에처럼 리스너 서비스가 실행되었다가 몇초만에 중지되는 경우는 listener.ora 파일의 HOST 값이 변경되었을 가능성이 있다.
HOST = 10.59.34.28 과 같이 IP를 설정하거나
HOST = VocDev와 같이 hostname을 설정한다.
hostname 및 ip 확인


hostname 변경은 내컴퓨터 속성 > 컴퓨터 이름 탭에서 [변경] 버튼을 이용해서 변경할 수 있다.


이클립스에서 메이븐을 이용한 웹프로젝트 생성 (스트럿츠2 사용) JAVA

Maven web 프로젝트 생성하기

 

1. New > Other 메뉴를 선택하면 아래와 같은 대화상자가나타나고 입력란에 maven 이라고 입력하면 많은 항목들 중에maven 관련된 항목들만 정렬되어 나타난다.

여기에서Maven Project 선택

 

 

2. 첫 번째 체크박스 [Create a simple project]를 선택하면 아키타입을 선택하는 과정을 생략할 수 있다.

다음으로 생성할 프로젝트의 워크스페이스를 지정하고 필요에 따라서 프로젝트가 포함될 워킹셋을 선택한다.

(여기에서는 워킹셋 정보는 생략하고 워크스페이스는 기본 워크스페이스에 생성했음)


 

3. 메이븐 프로젝트정보(Group Id, Artifact Id, Version, Packaging) 를 입력한다.

Name Description은 선택사항이다. 현재는 메이븐을 이용해서 Web프로젝트를 생성하므로 Packaging방법은 war를 선택한다.

여기에서 입력한 정보들은 pom.xml 파일에 적용되는 정보들이다.

해당 사항들을 입력한 후Next.


     

 

4. 프로젝트에 추가할 artifact를 선택한다.

프로젝트를 생성한 이후에 추가할 수 있으므로여기에서는 아무것도 추가하지 않은 상태에서 Finish.


 

5. 이제 프로젝트가생성되었다. 프로젝트 폴더 구조를 보면 다음과 같다.

앞에서 packaging war로 선택해서 WEBRootsrc/main/webapp 폴더가 생성되었다.

주로 사용하는 DynamicWeb프로젝트를 생성하면 프로젝트 최외곽에 webapp가 생성되지만 maven 프로젝트로 생성하면 src/main/webapp 경로가 WEBRoot가 된다.

경로만 다를 뿐 작업상 달라지는 사항은 없다.


 

6. 현재는 WEB-INF폴더와 web.xml 파일이 없기 때문에 webapp의 하위에 수동으로 생성해준다.



7. web.xml 파일의내용은 프로젝트 특성마다 차이가 있겠지만 아래와 비슷한 형식으로 작성하면 된다.

Struts2 프레임웍을 사용할 것이기 때문에 아파치 스트러츠2의 필터디스패쳐를 사용한다.

(org.apache.struts2.dispatcher.FilterDispatcher) <filter> 태그의 <filter-name> <filter-mapping>과 매핑시켜 주어야 한다.

<filter-mapping>태그태의 <url-pattern>에 정의된 패턴으로 요청이 있을 경우 필터디스패쳐가 동작한다.

<welcome-file-list>에첫 화면으로 사용될 파일을 정의한다. (index.jsp, main.jsp 같은 파일들이 보통 사용된다.)


 

8. pom.xml 파일을확인해보면 프로젝트 생성시에 입력했던 groupId, artifactId등의 정보가 입력되어 있다.

그리고 dependency는 아무것도 추가하지 않았기 때문에 관련정보가 없는 상태이다.


 

9. 지금은 웹프로젝트만생성했지만 서버와 연동을 하기 위해서는 서버사이드 프로젝트와의 상호작용이 필요하다.

따라서 방금 생성한NewAuctionWeb pom.xml 파일에 dependency를추가한다. (예제에서는 AuctionService를 추가하도록 한다.)

지금 생성한 프로젝트명에서 오른쪽버튼을 눌러서 아래와 같은 방법으로 dependency를 추가한다.


 

아래와 같은 화면에서 추가하고자 하는 AuctionService를 선택한다.

[ groupId :kr.nextree.auction, artifactId : AuctionService ]

화면 아래쪽에 Scope compile을 선택한다.


참고자료 : MavenDependency scope의 의미 (http://homo-ware.tistory.com/43)


 

pom.xml 파일을확인해보면 dependency가 추가된 것을 확인할 수 있다.


 

10. 이제 스트러츠2 프레임웍을 사용하기 위해서 관련 라이브러리를 복사하면 된다.

이부분도 역시 메이븐을 이용해서 dependency를 추가하면 현재 프로젝트에 관련 라이브러리들이 포함된다.

groupId :org.apache.struts, artifactId : struts-core를 추가한다.

버전은 여려 가지가 있는데 예제에서는 최근 버전인 2.2.1을 추가한다.

, 아파치 홈페이지의스트러츠 버전정보를 확인해보면 struts-core 2.2.1버전과dependency관계가 있는 ognl 3.0에서는javassist 라이브러리가 제외되었기 때문에 javassist 라이브러리를 별도로 dependency 추가를 해주어야 한다.

하지만 어플리케이션을 JBoss서버에서 운영한다면 javassist 라이브러리는JBoss 서버에서 제공되기 때문에 별도로 추가하지 않아도 된다.


참고자료 : http://struts.apache.org/2.2.1/docs/version-notes-221.html


 

compile하는데에는 javassist 라이브러리는 없어도 상관없지만 서버 실행 시 필요하기 때문에 runtime으로 추가한다.

만약 javassist 라이브러리를제외하게 되면 jetty 실행 시 의존성이 필요한 라이브러리가 없다는 메시지를 확인할 수 있다.


 

필요한 라이브러리 추가 후pom.xml파일을 확인해 보면 dependency가 추가된 것을 확인할 수 있다.


 

아래는 NewAuctionWebdependency그래프이다.


 

11. 스트러츠2 관련라이브러리 추가 후에는 스트러츠2 환경에 필요한 파일들을 생성해주면 된다.

 - src/main/resources폴더에 struts.xml 파일을 생성한다.

 -src/test/resources 폴더에 jetty.xml, webdefault.xml 파일을생성한다.

jetty.xml 파일과webdefault.xml 파일은 꼭 src/test/resources 위치가 아니라도상관없다.

하지만 배포해서 운영모드에서는 포함되지 않아도 상관없는 파일들이기에 test 하위 폴더에 두었다.

후에 pom.xml에서 이 두 파일들의 위치를 명시한다.

 

12. struts.xml 파일은 각 환경에 맞도록 수정한다. 아래는 간단한 예제

<constant> 태그는 value 속성에 정의된 xhtml, json 확장자로 들어오는 요청을스트러츠가 처리한다는 의미로 정의한 태그이다.

예제 소스에서는 kr.nextree.auction.web.AuctionAction클래스의 registerSellingAuction, findSellingAuctionById, findAuctionStatusById,announceClosed, startBidding 메소드에 대해서 스트러츠 액션을 정의했다.


 

13. jetty.xml 파일은 각 환경에 맞도록 수정한다.

jetty.xml 파일에서 datasource를 설정하지만 예제에서는 DB를 사용하지 않으므로 관련 설정을 주석처리 했다.


 

14. webdefault.xml 파일은 내용 수정 없이 그대로 복사

 

15. pom.xml 파일에 jetty관련설정을 추가한다.

contextPath, 제티 포트정보, jetty.xml, webdefault.xml 파일 위치 등에 대한 정보를 각 프로젝트의 환경에 맞게 수정한다.


 

16. 액션 클래스를 생성한다.

위에서 struts.xml 파일에 AuctionAction클래스에 대한 설정을 추가했으므로 AuctionAction.java 파일을 생성하도록 한다.


 

17. welcome 페이지를 추가한다.

앞에서 src/main/webapp/WEB-INF/web.xml 파일에서첫 페이지 파일 목록을 정의 했다.

예제에서는 index.jsp로 정의했으므로 이 파일을 생성한다.

src/main/webapp/index.jsp 파일을 생성한다.


 

18. jetty를 실행한다.


 

Goalsjetty:run을입력하고 Run버튼


 

콘솔창에 로그가 출력되면서 jetty가 실행된다.

pom.xml 파일에 정의한 것 처럼 8088포트로 jetty server가 시작되었음을 알 수 있다.


 

19. 브라우저 접속



20. 예제 프로젝트 폴더구조는 아래와 같다.

src/main/webapp/auction

src/main/webapp/error

폴더와 하위의 jsp파일들은 코딩과정을 생략하였다.





오늘의 생각 me2 2010년 6월 16일 오늘은...

이 글은 지원님의 2010년 6월 16일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 15일 오늘은...

  • 일본 축하해요~ 오카다감독 회생..(월드컵 남아공 카메룬 일본) 2010-06-15 09:04:21

이 글은 지원님의 2010년 6월 15일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 14일 오늘은...

  • 갑자기 티맥스 윈도우가 어떻게 됐는지 궁금해진다.(Tmax 티맥스 윈도우) 2010-06-14 08:46:01

이 글은 지원님의 2010년 6월 14일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 10일 오늘은...

  • 나로호 가만히 있더니 연기 뿜자마자 올라가네 잘 올라가길…(나로호) 2010-06-10 10:05:08

이 글은 지원님의 2010년 6월 10일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 8일 오늘은...

  • 환영합니다 장성호! 안영명은 아쉽지만 안녕…(한화 한화이글스 프로야구 장성호 안영명 기아) 2010-06-08 10:23:30

이 글은 지원님의 2010년 6월 8일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 4일 오늘은...

  • 홍대 프리스비 몽니공연 우연히 지나가다발견~ㅎㅎ(me2mms 홍대 몽니 monni me2photo) 2010-06-04 12:18:16

    me2photo

이 글은 지원님의 2010년 6월 4일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 3일 오늘은...

  • 네이버메일 크롬에서 사용하기 어렵네… 사라진 스크롤바 어쩔꺼야(메일확인하려면 브라우저 다시띄우고) 2010-06-03 14:18:22

이 글은 지원님의 2010년 6월 3일의 미투데이 내용입니다.


오늘의 생각 me2 2010년 6월 3일 오늘은...

이 글은 지원님의 2010년 6월 3일의 미투데이 내용입니다.


1 2 3 4 5 6 7 8 9 10 다음