發表文章

目前顯示的是 12月, 2023的文章

Oracle 11g R2 突然無法連入事件 (CLOSE_WAIT, TIME_WAIT)

 昨日我們一台Oracle 11g主機突然無法連入, 檢查後發現用SSH連入主機正常, 在主機上存取Oracle也都正常, 主機CPU, 記憶體, HD用量也都正常。只有透過網路存取Oracle的連線變得很難連上, 有時等很久之後可以連上。同事直接重開該台主機(shutdown, reboot)後, 就可以正常連上, 但沒多久又發現同樣連不上的情況! 我將listener 關下, 再打開後, 也一樣正常一下子, 然後就又連不上了。同事發現listener log檔已經非常大, 決定將log檔copy走, 刪除, 讓log檔重新開始。但是重開listener後, 情況一樣沒改善! 此時, listener log檔內可以看到一些錯誤訊息: 26-DEC-2023 12:02:54 * (CONNECT_DATA=(SERVICE_NAME=orcl)(CID=(PROGRAM=c:\windows\system32\inetsrv\w3wp.exe)(HOST=xxxx )(USER=NETWORK?SERVICE))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.xx.xx.xx)(PORT=1234)) * establish * orcl * 12518 TNS-12518: TNS:listener could not hand off client connection  TNS-12547: TNS:lost contact   TNS-12560: TNS:protocol adapter error    TNS-00517: Lost contact     Linux Error: 32: Broken pipe 使用netstat -ant, netstat -anp | grep 1521 或者lsof -i:1521查看會發現有很多TCP/IP連線的狀態一直都呈現TIME_WAIT, CLOSE_WAIT之類的的不正常狀態, 而且很多都不會消失, 還愈來愈多! tcp        0      0 127.0.0.1:62333      ...

基金日記: 基金的績效怎麼看?

圖片
  這支基金成立至今2年多, 成立時正好是FED為了因應全球Covid-19疫情造成的全球經濟困局, 而大量印鈔的時候。當時, FED救市, 直昇機式的大撒幣, 美國人手上現金滿滿, 股票市場熱鬧。利率降到0, 如下圖。此時也成就了不少少年股神!  但接著, 通膨就來了, FED為了對抗通膨, 已開始有傳出要升息的聲音。那時, 我對基金公司在此時成立這支基金, 心裡就有一些疑問? 這種全球趨勢的基金, 又不是反做或平衡型, 以趨勢來看, 不是正好去接掉下來的刀子嗎? 但因為理專的推銷, 我就意思意思的買一點點, 反正當做一個指標來觀察也好。 果然, FED開始升息後, 其淨值就開始掉掉掉, 到現在2年多, FED抗通膨有了一些成果, 開始傳出明年會啟動降息的消息, 這個基金的淨值就慢慢的回升。 現在事後諸葛一下, 檢討如何操作才是比較好的策略:  1. 一般人會想, 買在最低, 賣在最高是最好的策略, 但這個策略的問題在於, 沒有人知道什麼時候是最低點, 什麼時候是最高點。所以, 理論很好, 但現實不可行。 2. 一個說法是最好的買點是十年前, 其次是今天。但這個策略的問題是, 很可能買在最高點, 當然也很可能買在最低點, 反正全看運氣。 3. 我想, 應該盡可能買在低點, 利用一些工具來提高猜測的準確度, 就可以有不差的效果。以FED的利率來看, 升息開始後約半年, 就是基金淨值的最低點。到利率最高點時, 淨值都是向上的走法。當然此期間, 淨值還是上上下下的走。這段期間, 如果定期分批買進, 其實是會獲利的。 配合基金的績效圖表來看, 孤注一擲的在2年前下好離手, 到現在就是-9.43%(虧錢)。那如果是孤注一擲的在1年前下好離手, 到現在就是29.18%(大賺錢), 即使在半年前孤注一擲, 至今也有8.14%。但這種策略其實很難實行! 因為很難猜到何時是最低點。 實戰後, 會發現, 比較好實行的策略會是, 依照FED的利率, 配合全球景氣的相關數據, 定期(不)定額的買入。以績效圖表來看2年前就開始定期定額, 到現在也有15.61%, 就算是1年前開始到現在也有14.41%。

nRF52840 Dongle CircuitPython 類比輸入腳位

圖片
 如同大多數的MCU只有特定幾支腳有支援類比輸入的功能, nRF52840 Dongle 也是只有幾支腳位有類比輸入功能。但其實我也懶得查文件,所以就直接測試看看: 進入REPL,輸入指令: >>> import board >>> from analogio import AnalogIn >>> analog_in = AnalogIn(board.P1_10) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ValueError: Invalid pin 這樣P1_10 (即下圖中的左下角 1.10 Pin) 這支腳位就是不支援的,如此,有點耐心的一支腳一支腳的試,全部試完,就知道了,:-) >>> analog_in = AnalogIn(board.P0_31) >>> analog_in = AnalogIn(board.P0_29) >>> analog_in = AnalogIn(board.P0_02) 結果,只有這3支腳位 (0.02, 0.29, 0.31) 沒有出現錯誤訊息。 那應該就是這樣了,之後找時間,實際接個電路來試試。