2020年9月23日 星期三

[java]使用okhttp3時發生SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at sun.security.ssl.Alerts.getSSLException(Unknown Source)

at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)

at sun.security.ssl.Handshaker.fatalSE(Unknown Source)

at sun.security.ssl.Handshaker.fatalSE(Unknown Source)

at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)

at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)

at sun.security.ssl.Handshaker.processLoop(Unknown Source)

at sun.security.ssl.Handshaker.process_record(Unknown Source)

at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:268)

at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:238)

at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:149)

at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:192)

at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)

at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)

at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)

at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)

at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)

at okhttp3.RealCall.execute(RealCall.java:69)


 

解法

new OkHttpClient();改成getUnsafeOkHttpClient();

import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;


/**

* okHttp3信任所有證書

* @return OkHttpClient

*/

public static OkHttpClient getUnsafeOkHttpClient() {

try {

final TrustManager[] trustAllCerts = new TrustManager[]{

new X509TrustManager() {

@Override

public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {

}

@Override

public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {

}

@Override

public java.security.cert.X509Certificate[] getAcceptedIssuers() {

return new java.security.cert.X509Certificate[]{};

}

}

};

final SSLContext sslContext = SSLContext.getInstance("SSL");

sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

final javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

OkHttpClient.Builder builder = new OkHttpClient.Builder();

builder.sslSocketFactory(sslSocketFactory);


builder.hostnameVerifier(new HostnameVerifier() {

@Override

public boolean verify(String hostname, SSLSession session) {

return true;

}

});

return builder.build();

} catch (Exception e) {

throw new RuntimeException(e);

}

}






2020年6月11日 星期四

[java]java.sql.SQLException: I/O Error: Connection reset by peer: socket write error

java.sql.SQLException: I/O Error: Connection reset by peer: socket write error
at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1065)
at net.sourceforge.jtds.jdbc.TdsCore.microsoftPrepare(TdsCore.java:1191)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareSQL(ConnectionJDBC2.java:693)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:978)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)

主要原因還是在 Tomcat 的 connection pool 與 DB Server 斷線所引起。
重啟server即可

tomcat相關設定
maxWait="3000"  從池中取連線的最大等待時間,單位ms.
initialSize="10"  初始化連線
maxIdle="60"  最大空閒連線
minIdle="10"  最小空閒連線
maxActive="80"  最大活動連線
validationQuery = "SELECT 1"  驗證使用的SQL語句  
testWhileIdle = "true"  指明連線是否被空閒連接回收器(如果有)進行檢驗.如果檢測失敗,則連線將被從池中去除
testOnBorrow = "false"  借出連線時不要測試,否則很影響效能
timeBetweenEvictionRunsMillis = "30000"  每30秒執行一次空閒連接回收器
minEvictableIdleTimeMillis = "1800000"  池中的連線空閒30分鐘後被回收
numTestsPerEvictionRun="10"  在每次空閒連接回收器執行緒(如果有)執行時檢查的連線數量

removeAbandoned="true"  連線洩漏回收引數,當可用連線數少於3個時才執行  
removeAbandonedTimeout="200"  連線洩漏回收參數,200秒,洩露的連線可以被刪除的超時值。當連線時間大於200秒,不等資料庫回應就砍連線。
removeAbandonedTimeout        屬性是設定資料庫連線被釋最多空閒時間多少秒之後設定為空閒。預設移除廢棄連線的時間為300秒。





2020年5月29日 星期五

[java]NoClassDefFoundError

問題
Caused by: java.lang.NoClassDefFoundError: org/apache/http/HttpEntity

NoClassDefFoundError 錯誤發生原因
因為程式在執行時,找不到此class導致的錯誤。此時jvm就會拋出NoClassDefFoundError

如何解決
找出此class對應的jar,載入到classpath中即可

[攝影]空拍小技巧

拍照小技巧
  • 線條
  • 尋找形狀
  • 重複場景
  • 分割畫面
  • 找亮點
影片小技巧
  • 飛高飛遠
  • 鳥瞰飛高
  • 鳥瞰雲台移動
  • 水平運鏡(小心障礙物)
  • 空拍機上升同時雲台往下;空拍機下降同時雲台往上

2020年5月28日 星期四

eclipse 快速提醒相關聯指令

看到前輩key 任何字,馬上就有相關聯的提示出現
不同於alt + /
立馬詢問怎麼調整

點選 Menu: Windows > Preferences > Java > Editor > Content Assist
在Auto activartion triggers for Java填入『.@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ











結果

網站的憑證資訊怎麼看



2020年5月27日 星期三

[小知識]扣打的由來

扣打」,是來自於日本的英語借詞「クォータ(ローマ字:kuo-ta)。 
クォータ其實這詞就是借於英語「quota」一字。

[攝影][空拍]DJI Mavic Air2 vs DJI Mavic mini 規格一覽比較


Mavic MINI
Mavic Air 2
飛行器 飛行器
起飛重量 重量
249 g 570 g
尺寸 尺寸
折疊: 140 × 82 × 57 mm(長 × 寬 × 高) 折疊:180×97×84 mm(長 x 寬 x 高)
展開:160 × 202 × 55 mm(長 × 寬 × 高) 展開:183×253×77 mm(長 x 寬 x 高)
展開(含槳葉):245 × 290 × 55 mm(長 × 寬 × 高)
對角線軸距 對角線軸距
213 mm 302 mm
最大上升速度 最大上升速度
4 m/s(運動檔) 4 m/s(運動檔)
2 m/s(普通檔) 4 m/s(普通檔)
1.5 m/s(平穩檔)
最大下降速度 最大下降速度
3 m/s(運動檔) 3 m/s(運動檔)
1.8 m/s(普通檔) 3 m/s(普通檔)
1 m/s(平穩檔) 5 m/s(運動檔、俯衝)
(4500 米以上會限制俯衝速度至 3 m/s)
最大水平飛行速度(海平面附近無風情況下)
13 m/s(運動檔)
8 m/s(普通檔)
4 m/s(平穩檔)
最大起飛海拔高度 最大起飛海拔高度
3000 m 5000 m
最長飛行時間 最長飛行時間(無風環境)
30 分鐘(無風環境 14 km/h 勻速飛行) 34 分鐘
最大抗風等級 最大抗風等級
8 m/s(4 級風) 5 級風
最大可傾斜角度 最大可傾斜角度
30°(運動檔) 35°(運動檔)
20°(普通檔) 20°(普通檔)*
20°(平穩檔) * 強風狀況下為 35°
最大旋轉角速度 最大旋轉角度
150°/s(運動檔) 250°/s(運動檔)
130°/s(普通檔) 250°/s(普通檔)
30°/s(平穩檔)
工作環境溫度 工作環境溫度
0°C 至 40°C -10°C 至 40°C
工作頻率 工作頻率
型號 MT1SS5:5.725 - 5.850 GHz 2.400-2.4835 GHz
型號 MT1SD25:2.400 - 2.4835 GHz,5.725 - 5.850 GHz 5.725-5.850 GHz
發射功率(EIRP) 發射功率(EIRP)
型號 MT1SS5 2.400-2.4835 GHz:
5.8 GHz : <30 dBm (FCC); <28 dBm (SRRC) FCC: ≤26 dBm
型號 MT1SD25 CE: ≤20 dBm
2.4 GHz : <19 dBm (MIC/CE) SRRC: ≤20 dBm
5.8 GHz : <14 dBm (CE) MIC: ≤20 dBm
GNSS 5.725-5.850 GHz:
FCC: ≤26 dBm
GPS + GLONASS CE: ≤14 dBm
SRRC: ≤26 dBm
懸停精度 懸停精準度
垂直:± 0.1 m(視覺定位正常工作時)± 0.5 m(GPS 正常工作時) 垂直:
水平:± 0.3 m(視覺定位正常工作時)± 1.5 m(GPS 正常工作時) ± 0.1 m(視覺定位正常工作時)
± 0.5 m(GPS 正常工作時)
水平:
± 0.1 m(視覺定位正常工作時)
± 1.5 m (GPS 正常工作時)
最長懸停時間(無風環境)
33 分鐘
最大續航里程
18.5 km
最大水平飛行速度
19 m/s(運動檔)
12 m/s(普通檔)
5 m/s (三腳架模式)
螺旋槳
靜音快拆折疊槳
GNSS
GPS+GLONASS
指南針
IMU
機身內置儲存容量
8 GB
電池 電池
電池容量 容量
2400 mAh 3500 mAh
標稱電壓 額定電壓
7.2 V 11.55 V
充電限制電壓 充電限制電壓
8.4 V 13.2 V
電池類型 電池類型
Li-ion 2S LiPo 3S
能量 能量
17.28 Wh 40.42 Wh
重量 重量
100 g 198 g
充電環境溫度 充電環境溫度
5℃ 至 40℃ 5°C 至 40°C
最大充電功率 最大充電功率
24 W 38 W
相機 相機
影像傳感器 影像感測器
1/2.3 英吋 CMOS 1/2 英吋 CMOS
有效像素 1200 萬 有效像素:1200 萬以及 4800 萬
鏡頭 鏡頭
視角:83° 視角:84°
等效焦距:24 mm 等效焦距:24 mm
光圈:f/2.8 光圈:f/2.8
焦點範圍:1 m 至無窮遠 對焦點:1 m 至無窮遠
ISO 範圍 ISO 範圍
影片: 影片:
100 至 3200(自動) 100-6400
100 至 3200(手動)
照片: 照片(1200 萬像素):
100 至 1600(自動) 100-3200 (自動)
100 至 3200(手動) 100-6400(手動)
照片(4800 萬像素):
100-1600(自動)
100-3200(手動)
快門速度
電子快門: 4 至 1/8000 s
最大照片尺寸 最大照片尺寸
4:3 寬高比:4000×3000 4800 萬像素 8000×6000
16:9 寬高比:4000×2250
照片拍攝模式 照片拍攝模式
單張拍攝 單拍:1200 萬像素和 4800 萬像素
定時拍攝:2/3/5/7/10/15/20/30/60 秒 連拍:1200 萬像素,3/5/7 張
自動包圍曝光(AEB):1200 萬像素,3/5 張@0.7EV
定時拍:1200 萬像素 2/3/5/7/10/15/20/30/60 秒
智能拍照:場景識別、純淨夜拍和 HDR
HDR 全景:
豎拍(3×1):寬 3328×高 8000
廣角(3×3):寬 8000×高 6144
180° 全景(3×7):寬 8192×高 3500
球形全景(3×8+1):寬 8192×高 4096
照片格式
JPEG/DNG (RAW)
錄影解像度 錄影畫質及幀率
2.7K:2720×1530 25/30 p 4K Ultra HD: 3840×2160 24/25/30/48/50/60 fps
FHD:1920×1080 25/30/50/60 p 2.7K: 2688×1512 24/25/30/48/50/60 fps
FHD: 1920×1080 24/25/30/48/50/60/120/240 fps
影片最大碼率 4K Ultra HD HDR: 3840×2160 24/25/30 fps
2.7K HDR: 2688×1512 24/25/30 fps
40 Mbps FHD HDR: 1920×1080 24/25/30 fps
支援檔案系統 色彩模式
FAT32(≤32 GB) D-Cinelike, Normal
exFAT(>32 GB)
影片格式
圖片格式
MP4/MOV (H.264/MPEG-4 AVC, H.265/HEVC)
JPEG
影片最大碼率
影片格式
120 Mbps
MP4(H.264/MPEG-4 AVC)
支援記憶卡容量
最大支援 256GB 記憶卡
支援文檔系統
FAT32 及 exFAT
數碼變焦
雲台 雲台
結構設計範圍 結構設計範圍
俯仰:-110° 至 +35° 俯仰:-135° 至 45°
橫滾:-35° 至 +35° 橫滾:-45° 至 45°
偏航:-20° 至 +20° 偏航:-100° 至 100°
可控轉動範圍 可控轉動範圍
俯仰:-90° 至 0°(預設設定)-90° 至 +20°(擴展) 俯仰:-90° 至 0°(預設設定)
-90° 至 24°(擴展)
穩定系統 軸數
三軸機械雲台(俯仰、橫滾、偏航) 3 軸(俯仰、橫滾、偏航)
最大控制轉速(俯仰) 最大控制轉速(俯仰)
120°/s 100°/s
角度抖動量 角度抖動量
± 0.01° ±0.01°
感知系統 視覺系統
下方 前視
精確懸停範圍:0.5 至 10 m 精確測距範圍:0.35 至 22.0 m
可探測範圍:0.35 至 44 m
有效使用環境 有效避障速度:12 m/s
視角(FOV):
表面為漫反射材質,表面可辨別 水平 71°,垂直 56°
反射率 >20%(如牆面、樹木、人等)
光照條件充足(>15 lux,室內日光燈正常照射環境) 後視
精確測距範圍:0.37 至 23.6 m
可探測範圍:0.37 至 47.2 m
有效避障速度:12 m/s 
視角(FOV):
水平 44°,垂直 57°
下視傳感器配置
雙目 + ToF
下視
ToF 有效測量高度:0.1 至 8 m
精確懸停範圍:0.5 至 30 m
視覺懸停範圍:0.5 至 60 m
左視/右視
下視補光燈
單個 LED
安全
避障系統
APAS(高級輔助飛行系統)3.0
遙控及圖傳 圖傳系統
圖傳方案 圖傳方案
增強版 Wi-Fi Ocusync 2.0
2.4 GHz/5.8 GHz 自動切換
最大訊號有效距離(無干擾、無遮擋) 最大圖傳距離
型號 MR1SS5 10 km (FCC), 6 km (CE), 6 km (SRRC), 6 km (MIC)
5.8 GHz : 4000 m (FCC); 2500 m (SRRC)
型號 MR1SD25
2.4 GHz : 2000 m (MIC/CE)
5.8 GHz : 500 m (CE)
即時圖傳品質 即時圖傳品質
遙控器:720p/30fps 720p/30fps 或 1080p/30fps
圖傳延遲(視乎實際拍攝環境及行動設備) 圖傳延時(視乎實際拍攝環境及行動設備)
170 至 240 ms 120 - 130 ms
影片編碼格式
H.265
即時圖傳最大碼率 即時圖傳最大碼率
4 Mbps 40 Mbps
工作頻率 工作頻段
型號 MR1SS5:5.725 - 5.850 GHz 2.400-2.4835 GHz
型號 MR1SD25:2.400 - 2.4835 GHz, 5.725 - 5.850 GHz 5.725-5.850 GHz
遙控器
圖傳方案 遙控圖傳系統
增強版 Wi-Fi OcuSync 2.0
支援接口類型 支援接口類型
Lightning, Micro USB (Type-B), USB Type-C Lightning, Micro USB, USB-C
支援行動設備 支援的移動設備最大尺寸
最大長度 160 mm 180×86×10 mm(長 × 寬 × 高)
厚度 6.5 至 8.5 mm
工作環境溫度 工作環境溫度
0°C 至 40°C -10°C 至 40°C
發射功率(EIRP) 發射功率(EIRP)
型號 MR1SS5 2.400-2.4835 GHz:
5.8 GHz: <30 dBm (FCC); <28 dBm (SRRC) FCC: ≤26 dBm
型號 MR1SD25 CE: ≤20 dBm
2.4 GHz: <19 dBm (MIC/CE) SRRC: ≤20 dBm
5.8 GHz: <14 dBm (CE) MIC: ≤20 dBm
5.725-5.850 GHz:
FCC: ≤26 dBm
CE: ≤14 dBm
SRRC: ≤26 dBm
工作電流/電壓 工作電流 / 電壓
1200 mA/3.6 V(連接 Android 設備時) 1200 mA@3.7 V(連接 Android 設備時)
450 mA/3.6 V (連接 iOS 設備時) 700 mA@3.7 V(連接 iOS 設備時)
內置電池容量
2600 mAh
充電器
輸入
100-240 V, 50/60 Hz, 1.3 A
輸出
電池接口:13.2 V⎓2.82 A
USB 接口:5 V⎓2 A
電壓
13.2 V
額定功率
38 W

以上資訊取自DJI官網,只有做順序的調動
若官網資訊有更新,請以官網資訊為主

https://www.dji.com/tw/mavic-mini/specs
https://www.dji.com/tw/mavic-air-2/specs


2020年5月25日 星期一

[程式]啟動Tomcat時報錯:Server at localhost was unable to start within 45 seconds

在Tomcat啟動時,有時會報錯
Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

解決方法:
在server視窗雙點擊Tomcat服務,開啟設定視窗
在Timeout項目,將"Start (in seconds):"的45秒調大







再次啟動Tomcat

2019年8月1日 星期四

[java]地址隱碼

/**
* 地址隱碼
 * @param address
* @return
*/
public static String addressToMaskFormat(final String address)
{
if (StringUtils.isEmpty(address))
{
return "";
}
//郵政信箱不隱碼:臺北北門郵局第○○號信箱
if (address.contains("信箱"))
{
return address;
}
//地址自路段後全隱
final String zoneValue = address.replaceAll("^(.*[鄉|鎮|市|區])(.*)$", "$1"); //鄉鎮市區資訊
final String fullRoadValue = address.replaceAll("^(.*[鄉|鎮|市|區])(.*)$", "$2"); //路段之後的資訊
System.out.println("zoneValue="+zoneValue);
System.out.println("fullRoadValue="+fullRoadValue);
if (StringUtils.isNotEmpty(zoneValue) && StringUtils.isNotEmpty(fullRoadValue))
{
String laneValue = fullRoadValue;//預設巷弄號樓資訊
String roadValue = fullRoadValue.replaceAll("^(.*[路|段|街])(.*)$", "$1");//截取正常路段名資訊
if (StringUtils.isNotEmpty(roadValue) && !roadValue.equals(laneValue))
{
laneValue = fullRoadValue.replaceAll("^(.*[路|段|街])(.*)$", "$2"); //有正常路段名資訊 XX路 XX段 XX街 時,再截取巷弄號樓資訊
}else{
roadValue="";
}

final String visibleLaneValue = laneValue.replaceAll("([0-9|0|1|2|3|4|5|6|7|8|9|一|二|三|四|五|六|七|八|九|十]*[巷|弄|號].*)$", "");
final String hiddenLaneValue = laneValue.replaceAll(visibleLaneValue, "");

if (StringUtils.isNotEmpty(hiddenLaneValue) && hiddenLaneValue.length() > 1)
{
//hiddenLaneValue不超過1碼時,代表地址不全,全隱
return zoneValue + roadValue + visibleLaneValue + addStar("", hiddenLaneValue.length());
}
}

//上面地址格式不對時
if (address.length() > 10)
{
final String hiddenValue = address.replaceAll("^(.{10})(.*)$", "$2");
return address.replaceAll(hiddenValue, addStar("", hiddenValue.length()));
}

//若地址不足10碼,則直接出******
return "******";

}

/**
*
* @param str 欲格式化的字串
* @param len  格式化長度
* @param fillchar 想補齊的字元
* @return
*/
public static String addStar(final String str, final int len)
{
final String fillchar = "*";
final StringBuffer sb = new StringBuffer();
if (str == null)
{
for (int i = 0; i < len; i++)
{
sb.append(fillchar);
}
}
else
{
final int strLen = str.length();
if (strLen < len)
{
for (int i = 0; i < (len - strLen); i++)
{
sb.append(fillchar);
}
return str + sb.toString();
}
else
{
if (str.length() == len)
{
return str;
}
else
{
return str.substring(0, len);
}
}
}
return sb.toString();
}

2019年7月31日 星期三

[java]電話號碼/手機號碼隱碼

public static String phoneNumberToMaskFormat(final String phoneNumber)
{
if (StringUtils.isEmpty(phoneNumber))
{
return "";
}
final String cleanNumber = phoneNumber.replaceAll("[\\(\\)\\- ]*", "");//去除符號()-
if (StringUtils.isNotEmpty(cleanNumber) && cleanNumber.length() > 4)
{
//去符號讓第2-5個數字替換成星
//例:(02)2960-3456=>0****03456
//例:(037)364220=>0****4220
return cleanNumber.replaceAll("^(\\d{1})(\\d{4})(.*)$", "$1****$3");
}
//cleanNumber不超過4碼時
return "******";

}

public static String mobileNumberToMaskFormat(final String mobileNumber)
{
if (StringUtils.isEmpty(mobileNumber))
{
return "";
}
//留頭4字及尾3字,中間3字替換成星
//例:0912123456=>0912***456
if (mobileNumber.length() == 10)
{
return mobileNumber.replaceAll("^(.{4})(.*)(.{3})$", "$1***$3");
}
//mobileNumber不為10碼時
return "******";

}

[java]日期的年份隱碼

public static String yearToMaskFormat(final Date date)
{
if (date == null)
{
return "";
}
//將年換成星,例:1955/04/01=>****/04/01
final DateFormat df = new SimpleDateFormat("yyyyMMdd");
try
{
return df.format(date).replaceAll("^(\\d{4})(\\d{2})(\\d{2})$", "**** /$2/$3");
}
catch (final Exception e)
{
e.printStackTrace();
}
return "******";

}

[java]身分證號隱碼

public static String idToMaskEnd4Format(final String id)
{
if (StringUtils.isEmpty(id))
{
return "";
}
//尾4字替換成星
//例:A123456789=>A12345****
if (id.length() == 10)
{
return id.replaceAll("^(.*)(\\d{4})$", "$1****");
}
//id不為10碼時
return "******";
}

2019年4月18日 星期四

[金融]洗錢防制法

2)  洗錢防制法規定金融機構對於達一定金額以上之通貨交易,應確認客戶身分及留存交易紀錄憑證,並應向指定之機構申報。所稱之一定金額係指新台幣多少之單筆現金或換鈔交易? (1)25萬元 (2)50萬元 (3)75萬元 (4)100萬元

4)  下列何者不屬於金融機構防制洗錢措施,訂定內部控制、稽核及法令遵行之事項? (1)確認客戶身分之程序及留存交易紀錄憑證之方式與期限 (2)申報流程及程序及保密規定 (3)定期檢討及辦理在職訓練 (4)無需專責人員負責協調監督

2)  下列何者不屬於金融機構防制洗錢措施所稱之金融機構? (1)辦理儲金匯兌之郵政機構 (2)銀樓業 (3)證券集中保管事業 (4)信託業


出處

目前金融機構需要依 洗錢防制法 程序向客戶確認身分的情形如下:
1.客戶與金融機構建立業務關係(例如辦理開戶)時。
2.客戶以現金辦理新臺幣 50 萬元以上之臨時性交易時。
3.客戶辦理新臺幣 3 萬元(含等值外幣)以上跨境匯款之臨時性交易時。
4.金融機構認為客戶的交易有異常情形時。
5.金融機構對於過去所取得客戶身分資料有疑問時(例如客戶資料久未更新)。

金融機構執行確認客戶身分程序,應確認下列事項,並請客戶提供相關文件:
1.確認客戶本人身分。
2.確認代理人(如有)身分,及查證代理事實(例如取得委託授權書)。
3.確認客戶的實質受益人。
4.確認客戶與金融機構業務往來的目的及性質。

[金融]期貨商客戶保證金專戶之管理

1)  期貨商客戶保證金專戶之管理,下列敘述何者不正確? (1)兼營期貨業務之金融機構得將其客戶保證金專戶開設於其所經營之金融機構 (2)期貨商應將所開設客戶保證金專戶之機構名稱及帳號於營業場所顯著位置公告 (3)客戶保證金專戶內所有款項之提取作業應以轉帳方式辦理,同時應有詳實之紀錄及收付憑證 (4)期貨商對客戶在客戶保證金專戶內之存款或有價證券,不得進行透支、設定擔保或他項權利,且不得挪用為其他客戶保證金、權利金、結算交割費用、佣金、手續費或不足款項之代墊


出處

期貨商依本法第七十條第一項向本會指定之機構開設客戶保證金專戶時,
該帳戶應標明係客戶保證金專戶
期貨商應將所開設客戶保證金專戶之機構名稱及帳號於營業場所顯著位置
公告
,變更或註銷時亦同。
期貨商同時經營本國期貨經紀及國外期貨經紀業務時,應分別設置客戶保
證金專戶。
第一項之指定機構,以下列各款為限:
一、經本會核准經營外匯或收受存款業務,並符合本會所定條件之銀行。
二、證券集中保管事業。
三、經中央銀行委託辦理中央登錄公債登記業務,並符合本會所定條件之
清算銀行。
兼營期貨業務之金融機構不得將其客戶保證金專戶開設於其所經營之金融
機構
期貨商受託從事期貨交易時,所收付之款項應以新臺幣或該結算機構所接
受之外幣為之。
前項款項之收付,應透過客戶保證金專戶辦理之,該專戶內所有款項之提
取作業應以轉帳方式辦理,同時應有詳實之紀錄及收付憑證。
期貨商受託從事期貨交易,經委託人授權代辦結匯手續者,於辦理結匯時
,應依外匯收支或交易申報辦法規定辦理。
期貨商對客戶在客戶保證金專戶內之存款或有價證券,不得進行透支、設
定擔保或他項權利,且不得挪用為其他客戶保證金、權利金、結算交割費
用、佣金、手續費或不足款項之代墊
期貨商應設置客戶明細帳,逐日計算每一客戶保證金專戶存款與有價證券
餘額及有價證券抵繳金額之變動情形,並編製所有客戶保證金專戶明細表

期貨商為前項之計算後,應依下列方式處理。但於從事國外期貨交易時,
國外期貨交易所另有規定者,得依其規定辦理。
一、期貨交易人之期貨交易虧損金額保證金專戶扣除
二、期貨交易人之期貨交易盈餘金額,應存入保證金專戶
三、客戶保證金專戶之存款餘額與有價證券抵繳金額合計數低於維持保證
金之數額時,應即通知其繳交追加保證金至原始保證金額度。
四、客戶保證金專戶之存款餘額與有價證券抵繳金額合計數超過原始保證
金者,依期貨交易人指示提領及交付。
前項第三款所指之追加保證金,應依受託契約所定期限繳交。
期貨商應按月編製對帳單一式二份,並於次月五日前填製,一份送交期貨
交易人,一份由期貨商保存。
前項對帳單之內容應包括下列事項:
一、期貨交易人姓名及帳號。
二、當月所有成交交易之種類、數量、單價、日期。
三、當月期貨交易保證金、權利金交付明細。
四、期貨交易人在客戶保證金專戶內存款與有價證券之提存情形、月底餘
額及有價證券抵繳金額。
五、期貨交易人之期貨交易明細、總額、交割月份。
六、交易手續、稅捐之明細及總數。
七、交易盈虧之明細及總數。
八、其他有關期貨交易之事項。
期貨商應保存對帳單二年,其資料得以媒體保存。
期貨商遇有破產、解散、停業或依法令應停止收受期貨交易人訂單時,除
期貨商為結算會員,依本法第五十四條規定處理者外,本會得命令其將所
屬期貨交易人之相關帳戶,移轉於與該期貨商訂有承受契約之其他期貨商

期貨商於接受本會前項之命令時,除有正當理由報經本會核准者外,應於
二個營業日內,將委託人交易保證金專戶內存款與有價證券餘額、有價證
券抵繳金額及所屬期貨交易人之交易明細表,移交前項之其他期貨商,因
移轉所生之費用,應由移轉之期貨商負擔。
期貨商應於開業後二個月內,將其他期貨商同意於第一項所定情事發生時
,承受所屬期貨交易人相關帳戶之契約書影本,報本會備查。


















2019年4月17日 星期三

[金融]店頭衍生性金融商品簡介

店頭衍生性金融商品簡介
(一)        店頭衍生性金融商品之種類與特性
1.  什麼是店頭衍生性金融商品
店頭衍生性金融商品係指依國內外櫃檯買賣市場(Over-the-counter)之規則或實務,其價值衍生自有價證券、利率、貨幣、指數、商品、信用或其他利益所衍生的交易契約。
2.  店頭衍生性金融商品之種類
基本型的店頭衍生性商品可分為遠期契約(Forwards)、交換契約(Swap)及選擇權契約(Options),亦可上述二種以上契約之組合,或結合固定收益商品之結構型商品。
3.  店頭衍生性金融商品之特性
(1)  沒有標準化合約,一般採店頭逐筆議價方式交易。
(2)  交易雙方都必須承擔交易對手的信用風險,即不履約風險。
(3)  因為有買賣價差,一般無須支付額外費用。
(二)        常見店頭衍生性金融商品的應用
1.    遠期契約(Forwards
買賣雙方約定在未來特定日期,以約定價格買賣一定數量之標的資產的合約。常見的有匯率遠期契約(FX Forwards)、遠期利率協定(FRA)。
2.    交換契約(Swap
買賣雙方約定在未來某一段期間內,互換一系列的現金流量。常見的有換匯換利(CCS)、利率交換(IRS)、資產交換(Asset Swap)及信用違約交換(CDS)。
3.    選擇權契約(Options
選擇權買方支付一定的權利金給賣方,有權利依約定價格,在某特定日期,買入(買權)或賣出(賣權)標的資產,而選擇權賣方有義務履約的合約。常見的有匯率選擇權(FX Options)、債券選擇權(Bond Options)及資產交換選擇權(Asset Swap Options)。
4.    結構型商品
結構型商品是結合固定收益商品(Fixed Income Instruments)及衍生性金融商品(Derivatives)的創新理財工具,透過固定收益商品與衍生性金融商品之組合,使投資報酬與連結標的資產表現產生連動效應。常見的有保本型商品、股權連結型商品、雙元貨幣結構型商品。
(三)  與投資人權益相關規範
1.  投資人分級管理制度
證券商提供衍生性金融商品交易服務時,應該將客戶區分為專業客戶及一般客戶,對一般客戶在得承作之商品種類、商品適合度、風險告知、書面契約及交易糾紛處理等要求較高。
2.  投資人分類
(1)  專業客戶:
A.    專業機構投資人:指國內外之銀行、保險公司、票券金融公司、證券商、基金管理公司、政府投資機構、政府基金、退休基金、共同基金、單位信託、證券投資信託公司、證券投資顧問公司、信託業、期貨商、期貨服務事業及其他經主管機關核准之機構。
B.    最近一期經會計師查核或核閱之財務報告總資產超過新臺幣五千萬元之法人或基金。
C.    同時符合下列條件,並以書面向證券商申請為專業客戶之自然人:
l  提出資產達3,000萬以上的財力證明;或單筆交易金額超過300萬,且在該證券商往來總資產超過1,500萬元,並提供總資產超過3,000萬元以上之財力聲明書。
l  具備充分之金融商品專業知識或交易經驗。
l  充分瞭解證券商與其交易得免除之責任。
(2)  一般客戶:專業客戶以外者,即非高資產或具備專業投資知識與經驗的一般民眾。
3.  商品適合度
證券商應該根據客戶之投資經驗、財產狀況、交易目的、商品理解及風險承受度等,進行瞭解客戶評估作業(KYC);並根據商品特性、本金虧損之風險與機率、流動性、結構複雜度、商品年期等,進行評估商品屬性作業(KYP),證券商應向客戶銷售適合其等級之衍生性金融商品。
4.  投資衍生性金融商品應注意事項
(1)  確認該證券商是否取得各項衍生性金融商品交易之業務經營資格。
(2)  店頭衍生性金融商品交易須承擔證券商之信用風險,投資人交易前應審慎評估往來證券商之財務業務狀況。
(3)  衍生性金融商品係相當複雜度的投資工具,承作前應確認自己對該商品有一定程度的瞭解,並確認自己能承擔最差狀況發生時的損失。
(4)  應仔細閱讀證券商提供之書面契約,例如「產品說明書」及「風險預告書」等,並由專人解說。交易完成後,應自證券商取得交易確認之書面文件。
(5)  一般客戶與證券商從事結構型商品交易,證券商應盡告知義務,對於預計銷售對象超過十人以上,且商品期間六個月以上之商品,應有七天以上的審閱期。此外,應該由該證券商向客戶宣讀客戶須知之重要內容,並以錄音方式保留紀錄。
5.  查詢往來證券商是否取得業務經營資格
投資人可於本中心網站查詢已取得資格之證券商名單,網址為www.gretai.org.tw,路徑為首頁 > 衍生性商品 > 店頭衍生性商品 > 投資人園地 > 取得衍生性商品業務資格證券商名單。
6.  投資人有交易糾紛應如何申訴
投資人如遇有交易爭議,可先透過往來證券商提供的紛爭處理及申訴管道,進行溝通、協調或申訴,如無法獲得滿意的解決,則可向中華民國證券商業同業公會、財團法人金融消費評議中心及金融監督管理委員會申訴。


^