読者です 読者をやめる 読者になる 読者になる

VB.net での エクセルのプロセス問題

アプリケーションで開いたエクセルを、ユーザーが閉じるのを待たなければいけない局面があります。

エクセルに書き込まれた内容を確かめてもらったりするばあい。

もしくは、書き込んでもらう時。

 

ループ内で、そのエクセルがあるかどうかをチェックして、なくなるのを待つように実装しました。

実装当時、開放しなくてもエクセルのプロセスは残りませんでした。

Windows10 になるまでは!

 

会社のPCがWindows10に移行してからしばらくして、

プロセスが残っていることに気づきました。

仕方がないので、エクセルのBeforeCloseのイヴェントをとらえて、

その中でプロセスの開放処理を書いたのですが、

 

社内システムのアプリの更新をかけた後に、

エラーが出ているとの報告が。

ログをチェックすると、いらなくなったエクセルのファイルを削除しようとしたときに、別のプロセスが使用中で削除できなくなっていました。

閉じたエクセルが、タイミングによって解放されずにぶつかってしまったようです。

 

GC.Collect() でガーベッジコレクションをクリアすることで解消することができました。

 

 

CentOS7 Samba で Windowsから共有フォルダにアクセスできない不具合

ファイルサーバの引っ越しを行ってきました。

 

弊社の拠点はVPNで接続されており、

社内LANとしてどの拠点にも気軽にアクセスできる状態です。

 

先日ある拠点のファイルサーバの引っ越し(windows10 のフォルダ共有→CentOS7 Samba) をおこない、クライアントのWindows10PCから接続してみると、

ユーザー、パスワードの入力画面が表示されるまでに 30秒以上かかり、襲時には1,2分かかっていました。??????

まあ、そのうち調子が出るのではないかと、頭をかしげながらその拠点のクライアントPCの設定をすべて終えました。

別の拠点に引っ越し完了をつたえて、パスワードを再設定してもらおうとすると、

なぜか全くアクセスできない。

試しに、私が勤務している拠点(勤務センターとする)のPCにリモートデスクトップでログインし、Sambaの共有フォルダにアクセスをこころみましたが、できませんでした。

ping も通らない。

前日まで勤務センターのPCからリモートでファイルサーバの設定を行っていたので何ともおかしな話です。

変わっているのは、IPぐらいのものですが、セグメントは変えていないし、

???アクセスできない意味が分からない。

 

意味が全く分からないので、引っ越しは断念、すべて元に戻してみんなに謝って帰りました。

サーバは持って帰り調査です。最悪すべて再インストールするしかないな、と思っていました。それでもだめならば、機器の初期不良か・・・。

 

不審だったところがいくつか。

1 IPを変更後にreboot したが、いつまでたっても起動しなかった。

  モニタを接続してみると、エラーメッセージが出て固まっていた。

 

2 サーバを設置した拠点のクライアントPCからはアクセスできるのだが、

  パスワード入力画面が出てくるのが異常に遅い。

3 VPNでつながっているほかの拠点からはアクセス不能。PINGも通らない。

 

1の再起動失敗は、OSのアップデートで起動しなくなったことがあったので、

無効にしているはずのカーネルのアップデートがされてしまったのか、

それとも機器の不良で不安定なのか・・・。

2、3は・・・意味が分からないが、LANケーブルの断線、HUBの不良、ルータのキャッシュの不具合を考えました。

 

どちらも間違い。

1は、おそらく途中でぶち切ってしまったシェルスクリプトが動作していて、

起動できないのではなくて、シャットダウンできない状態にあったようです。

エラーメッセージは a stop job is running for ・・・・・で、

タイムアウトにもならずに延々と待機していました。

一度強制終了してから、起動、そしてもう一度再起動すると、普通に起動するようになりました。

2,3はなんと、

一つのLANポートに2つのIPアドレスが設定されていました。

それも2つ目は別の拠点のIPでセグメントも違っていました。

これは、一度GNOMEIPアドレスをいじっていた時に、なぜかなってしまったようです。

一度デバイスを削除してから、Modifyしなおしたら治りました。

GNOMEでのIPアドレスの変更や追加は、やらない方が無難なようです。

 

かくしてファイルサーバの引っ越しは完了。ようやく終わりました。

 

CentOS7 /dev/mapper/cl-root の inode が 使用率100% になる

会社で稼働中のファイルサーバが、朝出勤したら止まっていました。

smb nmb の状態を見ると何かエラーが出ているもよう。

 

夜中に行っているウィルスチェックやバックアップの結果メールを見ると。

システム動作情報ファイルに書き込みができません: デバイスに空き領域がありません」

 

というメールがバックアップ開始から40分後に来ていました。

 

???

バイスに空きがない・・・。そんなはずはないので調べると、

df -i

/dev/mapper/cl-root  100%

inode が枯渇しています。

意味が分からないので、うろうろと調べてみたがよく分からない。

しかしバックアップの後にエラーが出ているので、

バックアップ先のUSBハードディスクを疑いました。

まずは、ls -l してみると、どうもマウントされたままのようです。

アンマウントして ls ・・・。なんかフォルダがそのままある。

マウントしたUSBHDに存在するはずのフォルダが、

アンマウントした状態でも存在します。

削除してみると・・・、inode  1% まで下がりました。

他のサーバもチェックしましたが、同様の現象は起きていませんでした。

USBHDをフォーマットしたり、バックアップのチェックをしているうちになったのか、それともスクリプトが悪いのか。

うーむ。もしかすると、マウントに失敗して、mkdir したとか。

もう一度スクリプトを見直してみることにします。

 

CentOS7 Samba における、MasterBlowser のトラブル

先日導入したSambaサーバが、急にアクセスできなくなったと連絡が入りました。

ping は通るが、ssh での接続もできず、

あきらめて現場にいる人に、電源長押しで、再起動してもらいました。

 

再起動すると接続できたので、/var/log/messages の、その時刻のところを見ると、

最後に残っていたのは、MasterBlowser 変更の通知でした。

 

/var/log/samba/nmbd.log を確認すると、

他のWindowsServer と、Master Blowser を取り合っていたようで、

nmbd のログは、Master Blowser 変更の記述でいっぱいでした。

 

SambaにはMasterBlowser をあきらめてもらうことにして、様子を見ています。

 

smb.conf に追加↓

domain master = no
local master = no
preferred master = no
os level = 0

bizhub c284e の scan to smb の不具合が発生。

先日、WindwosServerから Centos7 Samba に引っ越しましたが、

KONICA MINOLTA の複合機から、スキャンしたPDFの保存ができないとの

報告が入りました。

正確には、小さなファイルだとできるが、スキャンするページ数を増やすと、

接続が切れて保存できない旨のエラーがでるという。

 

休日だったので、次の日朝から、ログを見ます。

Sambaのログには、タイムアウトしているエラーを発見。

原因はわからないのですが、思い出したことが。

 

サーバの引っ越し作業をしているときに、コピーの最中に接続が切れて、

失敗していることがあったのです。

 

何か、ハブとかネットワーク機器に不具合があるのかな、と思っていました。

 

結果は、ランケーブルが切れかかっていたということでした。

 

ネット上で検索すると、いくつか情報がヒットしていたのですが、

今回の障害は、「前日までは問題なく動作していた」

ので、scan to smb ができない、という情報は当てはまらないのでした。

 

不審な切断があったら、LANケーブルを疑うこと、という覚書でした。

MiSTEL BAROCCO を 買いました。

HappyHacking Keyboard を買おうかどうか迷っているうちに、見つけました。

 MiSTEL BAROCCO  二つに分かれているキーボードです。

 

肩こりがひどいので、以前からKinesys とか気になっていましたが。

 

BAROCCOのほうが安くて、コンパクトで良さそう。

 

迷ったのは、どの軸を買うのか。

無難に茶軸を買うか、赤軸にしておくか。

メカニカルキーボードはつかったことがないので、

迷った末に茶軸にしました。

実際に使ってみると、打鍵音が少し気になりますが、

悪くない。

何より、肩こりが少しましになったかも。

 

US配列なのは気にしていなかったのですが、

(というかどういうものかよくわかっていなかった)

日本語配列とは全然違うキーがたくさんある。

タイピングを覚えなおすつもりでやっていますが、

エンターキーが近いことや、直接入力と日本語入力の切り替えが SHIFT + CAPSLOCK

でできることなど、いいところがたくさんあるので、

悪くないような気がしています。

 

一番のハードルは、方向キーですが、

これは慣れるしかないような気がする。

今まで、離れた場所の方向キーに手を伸ばしていたのを考えれば、

小指を使ってFNキーを押しながら、JとかKとか押すのも大差ないような。

とういうか、慣れることができれば、効率は上がりそうです。

 

プログラマーにはおすすめではないかと思います。

ちなみに、最初は日本語配列のキーボードとして使用してみましたが、

¥ が打てない?? のであきらめて、USで使用しています。

あ、キーボードどうしをつなぐUSBケーブルは長いものを買ったほうが良いです。

https://www.amazon.co.jp/gp/product/B00R77K842/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1

 

マクロの機能はほとんど使用していませんが、FN+SPACEにだけ、

右クリックを割り当てています。

デザインパターンとともに学ぶ オブジェクト指向のこころ メモ

   概念 「私は何に対して責任があるのか?」

   仕様 「私はどのように使用されるのか?」

   実装 「私はどのようにして自身の責任をまっとうするのか?」

                                 』

※ UML モデリングのエッセンスー標準オブジェクトモデリング言語入門 より