2018년 5월 27일 일요일
確認内容
http://utk-unm.blogspot.jp/2014/07/webrtc.html
・webRTC
Web RealTime Communication
WebRTCでは、ブラウザ同士の直接接続をネゴシエートするために、事前にお互いの情報をやりとりする必要があるため、サーバは必要です。
お互いの情報を作成/チェックするために、STUNやTURN、ICEなどのIRC関連プロトコルを利用しており、これらのサーバも必要になります。
PCのカメラやマイクから取得した画像や音声のストリーミングだけでなく、DataChannelを利用してピア接続上で双方向通信が行えます。
・webRTC
Web RealTime Communication
WebRTCでは、ブラウザ同士の直接接続をネゴシエートするために、事前にお互いの情報をやりとりする必要があるため、サーバは必要です。
お互いの情報を作成/チェックするために、STUNやTURN、ICEなどのIRC関連プロトコルを利用しており、これらのサーバも必要になります。
PCのカメラやマイクから取得した画像や音声のストリーミングだけでなく、DataChannelを利用してピア接続上で双方向通信が行えます。
ORACLE
http://www.atmarkit.co.jp/fdb/ref/ref_oracle/privi.html#01
-------------------------------------------
DB接続設定ファイル情報
-------------------------------------------
tnsname.ora
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1.japan.com)
)
)
-------------------------------------------
http://blog.naver.com/gmjroc/40111049928
http://seandb.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-SID
[출처] Oracle TNS에서 SID와 service_name의 차이 | |작성자 xxsaintxx
출처: http://seandb.tistory.com/entry/오라클-SID [DB공부합시다]
-------------------------------------------
DB接続設定ファイル情報
-------------------------------------------
tnsname.ora
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1.japan.com)
)
)
-------------------------------------------
http://blog.naver.com/gmjroc/40111049928
- 오라클 서버
:오라클 서버(Oracle Server)는 여러 개의 물리적인 파일들, 메모리, 프로세스들로 구성된다. 우리는 오라클을 서버용으로 설치했으므로, 여러분의 컴퓨터가 오라클 서버가 된다. 오라클 서버는 오라클 데이터 베이스와 인스턴스로 구성된다.
- 오라클 데이터베이스
:설치 초기에 전역 데이터베이스 이름을 입력하여 생성한 시작 데이터베이스가 여기서 말하는 데이터베이스가 된다. 사실 '오라클 데이터베이스(Oracle Database)'는 대략 세 가지 정도의 의미로 사용된다.
첫째, 오라클 데이터베이스 관리스스템에 의해 관리되는 데이터들
둘째, 오라클 데이터베이스 시스템 그 자체
셋째, 데이터들을 구성하는 데이터 파일, 컨트롤 파일, 로그 파일 등 물리적인 파일들
넷째, 오라클 회사 이름. 오라클 사 라고도 한다.
여기에서 말하는 오라클 데이터베이스는 두 번째 의미가 된다. 특별한 언급이 없는 한 앞으로는 오라클 데이터베이스 혹은 데이터베이스라고 하면 두 번째 의미를 말한다는 점을 기억해 두자.
- 오라클 인스턴스
:인스턴스란 용어는 오라클에서 뿐만 아니라 객체지향 등 여러 가지 분야에서 사용하는 용어이다.오라클에서의 인스턴스(Oracle Instance)는 오라클 데이터베이스, 즉 물리적인 파일에 접근하고 데이터베이스를 관리하기 위한 수단으로, 이러한 역할을 하는 SGA(System Global Area)라는 메모리 영역과 백그라운드 프로세스(Background Processes)들로 구성된다. 하나의 인스턴스는 오직 한 번에 하나의 데이터베이스에서만 오픈되고 사용될 수 있다.
위 세가지 개념을 알고 있어야 전역 데이터베이스 이름과 SID를 이해할 수 있다.
----------------------------------------------------------------------------------------
- 전역 데이터베이스 이름
:전역 데이터베이스 이름(Global Database Name)이란 오라클 데이터베이스를 식별하기 위한 유일한 이름(값)을 말한다. 보통 여러 개의 오라클 데이터베이스에 동시에 접속하여 사용하는 것이 가능한데 이때 이를 식별하기 위한 이름이 되는 셈이다. 전역 데이터베이스 이름은 'db_name.domain_name(데이터베이스 명.도메인 명)'으로 명명된다. 예를들면 'orcldb.sale.us.com'이라는 이름이 있는 경우 'orcldb'가 데이터베이스명이며 'sale.us.com'이 도메인명이 된다.
전역(global)이라는 이름이 암시하듯이 전역 데이터베이스 이름은 전 세계에서 유일한 값이 될수 있다.
예를 들어보자. 대한민국에는 홍길동이라는 사람이 적어도 한 명 이상은 있을 것이다. 따라서 특정한 홍길동이라는 사람을 찾기 위해서는 이름만 가지고는 식별하기 어렵다. 범위를 좀 좁혀서 서울시 마포구 연남동 사는 홍길동이란 사람이 있다고 한다면 거의 유일하게 식별할 수 있을 것이다. 여기서 홍길동이 데이터베이스 이름이 되며, '568번지.연남동.마포구.서울시.대한민국'가 도메인명이 되는 것이다.
- SID(시스템 식별자)
:SID(System Identifier, 시스템 식별자)는 오라클 데이터베이스가 아닌 오라클 인스턴스를 식별하기 위한 유일한 값이고, 그 값은 데이터베이스 이름이 된다. 즉, 전역 데이터베이스 이름에서 도메인 명을 제외한 데이터베이스 명이 그 값이 되는 것이다. 도메인 명을 생략하는 경우가 많은데 이러한 경우 전역 데이터베이스 이름과 동일한 값을 갖게 된다.
소규모 네트워크 상에서 오라클 서버를 구성해서 사용할 경우에는 굳이 도메인 명을 명시하지 않아도 되지만, 대규모 네트워크 상에서는 (예를들어, 글로벌 기업의 경우에는 전 세계 각지에 데이터베이스를 구축하여 사용할 수 잇는데, 각 국가마다 데이터베이스를 만들어 사용할 경우에는 oracle.korea, oracle.japan처럼 도메인명을 명시해서 전역 데이터베이스 이름을 구성할 수 있다) 전역 데이터베이스 이름과 sid는 다른 값을 갖게 될 것이다. 따라서 SID와 전역 데이터베이스 이름은 엄연히 다른 개념임을 기억하자
출처 : http://www.cyworld.com/duck_info/3518956
[출처] 전역데이터베이스, SID|작성자 kjrok
http://seandb.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-SID
SID (
1. 오라클 SID를 확인하는 방법
SQL> select instance from v$thread;
SQL> select instance from v$thread;
INSTANCE
----------------
ORCL
2. 오라클 데이타베이스명을 확인하는 방법
SELECT NAME, DB_UNIQUE_NAME FROM v$database;
SQL> select * from v$database;
지금껏 오라클을 사용하면서도 SID와 Service Name은 거의 구분해서 사용하지 않았다.
덕분에 최근까지는 SID와 Service의 차이를 인식하지 못하고 사용해 왔다.
사실 일반적인 테스트 환경이나 소규모의 경우 한개의 DB서버에 한개의 인스턴스만 사용한다.
이런 환경에서는 SID와 Service Name을 구분할 필요가 없었던것.
단순히 구분짓자면 이렇게 말할수 있다.
SID = DB 하나의 인스턴스
Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것
쉽게 예를 들어보자.
서버 한대에 인스턴스를 여러개 생성하여 orcl1, orcl2 로 각각 생성했다고 하자.
각각의 인스턴스는 orcl1, orcl2 라는 SID를 갖게 된다.
해당 서버에서 두개의 인스턴스를 묶어 사용할경우, orcl 이라는 Service Name을 갖을수 있다.
이외에도 서버 두대에 설치하여 각각 미러링 처리하여 동일한 서버인것 처럼 활용할경우
각각의 서버는 서로다른 SID를 갖게 되지만 Service Name을 동일하게 하여 같은 서버 처럼 활용할수 있다.
----------------
ORCL
2. 오라클 데이타베이스명을 확인하는 방법
SELECT NAME, DB_UNIQUE_NAME FROM v$database;
SQL> select * from v$database;
지금껏 오라클을 사용하면서도 SID와 Service Name은 거의 구분해서 사용하지 않았다.
덕분에 최근까지는 SID와 Service의 차이를 인식하지 못하고 사용해 왔다.
사실 일반적인 테스트 환경이나 소규모의 경우 한개의 DB서버에 한개의 인스턴스만 사용한다.
이런 환경에서는 SID와 Service Name을 구분할 필요가 없었던것.
단순히 구분짓자면 이렇게 말할수 있다.
SID = DB 하나의 인스턴스
Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것
쉽게 예를 들어보자.
서버 한대에 인스턴스를 여러개 생성하여 orcl1, orcl2 로 각각 생성했다고 하자.
각각의 인스턴스는 orcl1, orcl2 라는 SID를 갖게 된다.
해당 서버에서 두개의 인스턴스를 묶어 사용할경우, orcl 이라는 Service Name을 갖을수 있다.
이외에도 서버 두대에 설치하여 각각 미러링 처리하여 동일한 서버인것 처럼 활용할경우
각각의 서버는 서로다른 SID를 갖게 되지만 Service Name을 동일하게 하여 같은 서버 처럼 활용할수 있다.
TESTDB = // 서비스 이름
(DESCRIPTION = // 접속하고자 하는 대상 데이터베이스정보
(ADDRESS_LIST = // ADDRESS들의 모임
// ADDRESS : 접속하고자 하는 데이터베이스 서버의 리스너를 호출하기 위한 주소 정보
// Protocol, Hostname, Port를 지정할 수 있습니다.
(ADDRESS = (PROTOCOL = TCP)(HOST = calmmass.com)(PORT = 1521))
)
(CONNECT_DATA = // SERVICE_NAME 옵션을 이용하여 접속할 리스너프로세스가 사용
// 하는 서비스 이름을 지정하거나또는 SID 옵션을 이용
// 데이터베이스의 SID 명을 지정
(SERVICE_NAME = testdb)
)
)
그래서 접속한다면 ..
sqlplus system/oracle@TESTDB
SID는 오라클 인스턴스마다 주는 고유의 ID라고 생각하시면 되고
TESTDB(서비스 이름)은 리스너에서 사용하는 오라클 넷 서비스를 의미 합니다.
보통 싱글모드에서는 DB이름과 SID를 동일하게 구성하기도 합니다.
[출처] Oracle TNS에서 SID와 service_name의 차이 | |작성자 xxsaintxx
출처: http://seandb.tistory.com/entry/오라클-SID [DB공부합시다]
java8 map
package test.map;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
public class TestOfMap {
/** 対応コード : XX1 */
private static final Map<String, String> cdValOfXx1 = new HashMap<String, String>() {
{
put("new01", "old01");
put("new02", "old01");
put("new03", "old01");
put("new04", "old01");
put("new05", "old01");
}
};
/** 対応コード:XX2 */
private static final Map<String, String> cdValOfXx2 = new HashMap<String, String>() {
{
put("new11", "old11");
put("new12", "old11");
put("new13", "old11");
put("new14", "old11");
put("new15", "old11");
}
};
/** コード */
private static final Map<String, Map<String, String>> cdOfXx1 = new HashMap<String, Map<String, String>>() {
{
put("101", cdValOfXx1);
put("201", cdValOfXx2);
}
};
/** データリストXxx1 */
private static final String[] tblListOfXx1 = {
Tbl1Entity.class.getSimpleName(), Tbl2Entity.class.getSimpleName(),
Tbl3Entity.class.getSimpleName(), };
/** データリストXxx2「 */
public static final String[] tblListOfXx2 = {
Tbl1Entity.class.getSimpleName(), Tbl2Entity.class.getSimpleName(),
Tbl3Entity.class.getSimpleName(), };
/**
* Testメソッド
*/
public void test(){
boolean isRegistOfTbl1 = ArrayUtils.contains(tblListOfXx1, Tbl1Entity.class.getSimpleName());
if (isRegistOfTbl1) {
// Mapから値取得、デフォルートは空
cdValOfXx1.getOrDefault("new11", "");
// TODO 登録処理など
}
}
}
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
public class TestOfMap {
/** 対応コード : XX1 */
private static final Map<String, String> cdValOfXx1 = new HashMap<String, String>() {
{
put("new01", "old01");
put("new02", "old01");
put("new03", "old01");
put("new04", "old01");
put("new05", "old01");
}
};
/** 対応コード:XX2 */
private static final Map<String, String> cdValOfXx2 = new HashMap<String, String>() {
{
put("new11", "old11");
put("new12", "old11");
put("new13", "old11");
put("new14", "old11");
put("new15", "old11");
}
};
/** コード */
private static final Map<String, Map<String, String>> cdOfXx1 = new HashMap<String, Map<String, String>>() {
{
put("101", cdValOfXx1);
put("201", cdValOfXx2);
}
};
/** データリストXxx1 */
private static final String[] tblListOfXx1 = {
Tbl1Entity.class.getSimpleName(), Tbl2Entity.class.getSimpleName(),
Tbl3Entity.class.getSimpleName(), };
/** データリストXxx2「 */
public static final String[] tblListOfXx2 = {
Tbl1Entity.class.getSimpleName(), Tbl2Entity.class.getSimpleName(),
Tbl3Entity.class.getSimpleName(), };
/**
* Testメソッド
*/
public void test(){
boolean isRegistOfTbl1 = ArrayUtils.contains(tblListOfXx1, Tbl1Entity.class.getSimpleName());
if (isRegistOfTbl1) {
// Mapから値取得、デフォルートは空
cdValOfXx1.getOrDefault("new11", "");
// TODO 登録処理など
}
}
}
java Iterator list重複削除
Iterator<InfoBean> itr = userCpDepList.iterator();
List<String> dupList = new ArrayList<String>();
while (itr.hasNext()) {
InfoBean info = itr.next();
if (dupList.contains(info.getBuso())){
itr.remove();
}
else{
dupList.add(info.getBuso());
}
}
List<String> dupList = new ArrayList<String>();
while (itr.hasNext()) {
InfoBean info = itr.next();
if (dupList.contains(info.getBuso())){
itr.remove();
}
else{
dupList.add(info.getBuso());
}
}
java8 sort
// ソート
List<InfoBean> userCpDepList = new ArrayList<InfoBean>();
Comparator<InfoBean> orderByItem1 = Comparator.comparing(InfoBean::getItem1).reversed();
Comparator<InfoBean> orderByItem2 = Comparator.comparing(InfoBean::getItem2);
Comparator<InfoBean> orderByItem3 = Comparator.comparing(InfoBean::getItem3);
userCpDepList = userCpDepList.stream()
.sorted(orderByItem1
.thenComparing(orderByItem2
.thenComparing(orderByItem3))).collect(Collectors.toList());
List<InfoBean> userCpDepList = new ArrayList<InfoBean>();
Comparator<InfoBean> orderByItem1 = Comparator.comparing(InfoBean::getItem1).reversed();
Comparator<InfoBean> orderByItem2 = Comparator.comparing(InfoBean::getItem2);
Comparator<InfoBean> orderByItem3 = Comparator.comparing(InfoBean::getItem3);
userCpDepList = userCpDepList.stream()
.sorted(orderByItem1
.thenComparing(orderByItem2
.thenComparing(orderByItem3))).collect(Collectors.toList());
피드 구독하기:
글 (Atom)