2014年7月7日月曜日

パソコンが熱暴走した

パソコンが熱暴走しました
結論から言うと、マシンの中の掃除と、ヒートシンクのグリスの塗り替えで解決しました。
ビデオボードの熱暴走が盲点だったのと、
あれこれあがいていたら、結果的にマシンのスペックが無駄に増強されました。

ヒートシンクのグリスを塗り替えた日付を覚えて置くために日記記述です。
熱暴走の原因になったパーツは、本体のCPUと、ビデオボードのCPUです。
※正確には私のマシンで熱暴走したのは、ビデオボードのみです。

対象マシン:HPE-190JP(HPの2010年春モデル)
症状は、数時間作業していると、
いきなり画面が真っ暗になって、
キーボードを叩いても叩いても、なにも受け付けない…
もしかすると、実際は何か受け付けてるのかもしれないけど、
モニタに何も映らないから確認できないという状況に(T-T)
なにも出来ないので、そこまでの作業内容は諦めて電源長押しからのシャットダウン。

そういえば、ちょうど1年前位前にも、同じことがあったなあ。
結局熱暴走だったんで、
マシンの中を掃除したら治った。
大体パソコンって、不具合が起こったら
マシンの中の埃の掃除と電源コンセントを引っこ抜いて(ノートの場合はバッテリーも抜いて)
電源ボタン3分ぐらい押しっ放しすると、変な静電気が抜けて治るよね。

もう夏ですし、マシンの中の通気性を良くしとかないとね。
そういえば、前回マシンの中を掃除したのは、年末の大掃除のついでだったから、
半年と少しぐらい。季節が廻るのは早いものですね。
って書くとすんなり治ったような感じになるのだけど、

あのときは、↑位の感覚で、パソコンの蓋を開けたら、結構な量の埃が溜まっていたので。
(吸気口、排気口、CPUクーラーのヒートシンクは目詰まりしてた)
ああやっぱりとつぶやいて、
掃除機を手に取り、
吸気口、排気口、CPUクーラーのヒートシンクにごっそりと付いたほこりを除去。
目立つ所にエアダスターを吹き付けて埃を飛ばして、それも吸い取り。
ついでに電源長押しして、静電気除去
やれやれ、これで元通りでしょ。
なんて思いながら電源をON。

数時間後、画面真っ暗。
私パニック

システムログにメモリエラー的なことが出ていたので
メモリを変えてみたり

ハードディスクの辺りから異音がするような気がするということで
ハードディスクを変えてみたり
したけど、いっさい症状は改善しなかったなぁ(--)

さらに、
1.何かしら作業してる時に2~3時間すると、画面真っ暗
2.モニタに何も映さずに動作してるテレビの録画は5~6時間平気
このことから、モニタの故障か?ってことでモニタを新しく購入したり、してみたけど
やっぱりなにも改善されなくて、

念のため、古いモニタ(もうかれこれ10年ぐらい使っている)の裏蓋を開けてみたら
コンデンサーが一個、液漏れして、錆ついていたので、
同じスペックのコンデンサーを半田ゴテでつけ替えたら、
モニタがジンワリ電源ONじゃなくて、速やかに電源ON出来るようになるものの、
数時間後に画面真っ暗。

このままですと、後マザーボードと電源とケースを買えば
もう一台パソコン作れちゃうんじゃない?
このマシンを購入してから3年…
買い換えちゃった方が早い?的な気分になったものですよ。

そうはいっても、数年レベルで不満の出ないマシンという思いで購入したわけだし、
私の中の予算会議が通りません。
この時点でメモリやらハードディスクやら無駄な投資が発生しているのも
問題です。

そこで、ふと、徹底的に分解掃除だ。
という気分になったので、
取り外せる部品を全部取り外していると、
あちこちのパーツの裏に結構な量の埃、
中でも、ビデオボードに、えらくたくさんの埃が付いている。
しげしげと眺めてみると、
ビデオボードには、何やらファンの様なものと、ヒートシンクと思しきアルミの波板。
アルミの波板の隙間にびっしりと埃が…

これか…

ビデオボードのCPUクーラー。
盲点でした…
PCIスロットからパーツ取り外すって発想がなかったorz

で、ここを掃除したら
いや、快適に動く動く。
解決。

そして手元に残ったのは
メモリ:
 2G×3 = 6G
  →2G×3 + 8G×3 = 30G
ハードディスク:
 1T×1
  →2T×1 1T×1 = 計3T
モニタ
 (三菱)RDT172M×1
  →(三菱)RDT172M×1(コンデンサー取り替え済み)
   +(HP)Pavilion23fi×1 = 2画面
に大幅増強されたマシン

オンラインゲームとかしないので、
現在、マシン性能の2割以上使ったことがありません。

ということで、、今回も
分解して掃除しましたが、
症状が改善しない。

というか、それほど埃は溜まっていない…

これは、いよいよか?
あるいは、ビデオボードだけ買い換え?
でも、ビデオボード変えるなら、
今付いている、GT230よりハイスペックが良いよね。
でも、これ以上の候補って見てみると、消費電力が結構上がるのよね。
そうすると、電源供給安定させるために、
電源ユニットも変えたいよね。
今付いてるのが450Wだから、600Wにあげちゃう?
ついでなんで、ちょっと調子が悪い(様な気がする)DVDドライブも増設?
オンラインゲームとかしないのに、この投資は、完全に無駄なんじゃない?

見た感じ、マザーボードと拡張カードに、
液漏れしていそうなコンデンサーとか、焼けてしまっているようなチップは存在しない部品の経年劣化ってわけではなさそうだし、
多分、充分使えるパーツを無駄に私にはオーバースペックなパーツに付け替えて終わった挙句
予備パーツが部屋に転がることになるのでは?
とか思ってちょっと途方に暮れていると、

ヒートシンクにネジが…

ここもバラせる?

で、はずしてみると、
シリコングリスが固まって、
歯石みたいになってる…

ここって確か、何だかべたべたしていたような…
この状態って、
シリコングリスの小石で、ヒートシンクが浮いてしまって、
CPUに接着どころか、
CPUから外れた状態で、
ヒートシンクに熱が伝わっていないのでは…

電源ONしてみると、
案の定、ビデオボードのCPUは火傷しそうに熱くなるのに、
ヒートシンクは冷たいままでした。

ということで、
ちょっと奮発してシルバーグリスを購入
何もパーツを交換しないのは何だか癪なので、
排気口のファンをちょっとだけ風量の大きなものに変更することにしました。


ということで、
歯石を消毒用エタノールで取り除いてから塗りなおし。

電源ONしてみると、
ちゃんとヒートシンクも熱くなっている。
というか、ちょっと触れないぐらいの熱さ。
そりゃ、熱暴走するわ…って感じです。



それから、多分気のせいですが、
何だか、マシンの反応が良くなった気がします。


今回のポイント
 ・パソコンの掃除は、パーツを分解して行ったほうが多分良い
 ・CPUクーラーのグリスは時間が経つと固まるので、塗りなおした方が良い。
  (コンデンサー以上に消耗品です。)
 ・分解掃除を行った後は、自己満足の効果が付加されて、何だかマシンが早くなったような気がする

2014年5月2日金曜日

64bit環境から32bitのODBC環境を呼び出そうとしてはまったお話

開発環境 WINDOWS7 Ultimate
eclipce pleiades
OFICE 2007
データベースをがっちり構築してツールを作るのではなくて
ACCESS のMDBをODBCでつつくぐらいで小回りのきくツールを作りたかったので
64bit環境下からODBCでACCESS_DBに接続しようとして却ってはまったの続き

さて、ODBC接続も作ったし、
String odbc_name = "ODBCの名前";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:" + odbc_name,"","");
で繋がるかな~って実行してみたら…
これまたエラーで動かない…orz

これもあれこれ見てみると、
javaも64bitから呼び出すのは64bitのODBCなので、
32bitのODBCなんか知ったこっちゃないわよ 的なことのようだ
で、解決方法
eclipseに32bit用のjreを設定してやって、
プロジェクトも32bitで作るのが解決方法です

なんのこっちゃ、って感じですが、
まずは、32bitのjreをeclipceに設定してあげます

ウィンドウ(英語版だとwindow)から設定(英語版だとpreferences)を選びます


で、Javaの中にあるインストール済みのJRE(英語版だとInstalled JREs)を選択して 追加
 
 
 

標準VM(英語版だとStandarad VM)を選択してNEXT
 


JREホームは、32bitのJREはC:\Program Files (x86)\Javaの中にあるのでこれを選択
※私はjre7を落としていたのでこのフォルダを選択
 もしもなかったら、ORACLEのページからX86の方をダウンロードしてインストールしましょう
JRE名は何でも良いけど判り易くjre_32bitにしておきました。
 



続いて、プロジェクトの実行環境を32bitにします。

プロジェクトを右クリックして、設定(英語版だとproperties)
 

 

実行/デバッグ環境(英語版だとRun/debug settings)
対象のプロジェクトを選んで編集(Edit)

 JREタブから代替 JRE(英語版だとAltemate JRE)を選択
すると、先ほどインストールした32bitのJREが選択できるようになるので、選択⇒OK
 


これで、無事に32bitのデータベースにODBC接続できました\(^o^)/
まとめ
1.64bit環境で仕込んだeclipceで32bitのデータベースに接続するなら、
  32bitのJREがeclipceにインストールされている必要がある。
2.プロジェクトの実行環境を1でインストールした32bitのJREにしてやる必要がある。
ということのようです。

しかし、小回り利かせようと思って、お手軽にしようとした結果、
却って時間がかかる羽目に・・・orz

まあ、でも、いちいちデータベースの準備しなくても、
作ったjavaの実行環境とMDB準備して、
ODBC接続設定してやれば動くし…
データベースもACCESSで直接見ようと思えば手軽に見れるし…
ACCESS入ってなくてもランタイムで動作可能な仕掛けができるということで…
ゴニョゴニョ…と自分で言訳してみる。

でも、あれ?
これって、64bitのデータベース使った仕掛けとくっつけようとすると、
また一苦労するんじゃないか?
とりあえず目を背けるか…

64bitの世界と32bitの世界の並行稼働の間はこの辺、
苦労しかしない予感がするんだよなぁ

でも、
http://office.microsoft.com/ja-jp/word-help/HA010369476.aspx
によると

既定では、コンピューターで 64 ビット版の Windows を実行している場合でも、Microsoft Office 2010 では 32 ビット版の Office 2010 がインストールされます。
 重要   32 ビット版の Office 2010 は、ほとんどの人に推奨されるオプションです。これは、他の 32 ビット アプリケーション (特に 32 ビット オペレーティング システムでのみ使用できるサード パーティ製アドイン) の潜在的な互換性に関する問題を回避できるためです。


ということで、Officeは当面32bit使ってねってことなんですよね。
まあ、32bit時代の資産が軒並み使えなくなるってのもあれだしね…
でも、これって、64bit普及しないんじゃぁないだろうか…

将来的に新しいOSでは32bitのアプリは動きませんって言った時に
パニック起こしそう…

64bit環境でACCESSデータベースにODBC接続しようとしてはまったお話

仕事でJAVA PGをしててはまったのでメモ
開発環境 WINDOWS7 Ultimate
eclipce pleiades
OFICE 2007
データベースをがっちり構築してツールを作るのではなくて
ACCESS のMDBをODBCでつつくぐらいで小回りのきくツールを作りたかったので
64bit環境下からODBCでACCESS_DBに接続しようとして却ってはまった・・・

64bit環境だと普通にコントロールパネル→管理ツール→データソース(ODBC)で
ACCESSデータベースにODBC接続しようとすると、
ACCESSデータ接続のためのドライバーがなくて、はまります。

普通にコントロールパネルから


データソース(ODBC)を選んで


ODBC接続を追加してやろうとすると
 


ACCESSデータベース用のドライバがなくて新規に作れない(T_T)ということになります。
 
 


原因は、ACCESSが32bitで動いているので、64bitの設定からは機能しないということらしいです。
で、マイクロソフトのサポートページ
http://support.microsoft.com/kb/942976/ja
を見てみると,
余計に混乱したorz
難解な日本語を超訳すると、
 
32bitで使いたきゃ32bit用にODBC接続設定しなさい
設定は普通に呼んでも出てこないから、直接呼び出せや
って言っているようだ・・・
で、その直接呼び出すにしてもどこにいっらっしゃるのかしら?
って悩んでいたところ、
C:WINDOWSの中に
SysWOW64っていうそれっぽいものがいた。


ので、眺めてみるとodbcad32.exeってこれ又それっぽいのがいた
 


開けてみると
 


今度は普通にACCESSの接続用ドライバが居た\(-o-)/
 

 

無事に適当なデータソース名を付けて、
目的のACCESS_MDBを選択して完了


ということで、64bit環境のWINDOUSでACCESSデータベースに
ODBC接続したければ、
C:\Windows\SysWOW64\odbcad32.exe
を直接呼び出さなきゃだめよ。
という注意書き。

そしてこの後、このODBCをこれまた64bit 環境のeclipceから呼び出そうとして
はまるのでした・・・(T_T)

ACSESSデータベース使いたかったら
素直にACCESSでVB書けよって話なんですけど、
メインはORACLEにしておいて、
スタンドアローンでちょっとしたツールを作ったりとか、
小回り利かせたいって、思っちゃったのが罠でしたorz