「SE業務」カテゴリーアーカイブ

【Windows】エクスプローラーを強制再起動する

Windows10を使っていると、エクスプローラーがフリーズして何もできなくなってしまうことがあります。私の場合、TeraTermのログイン画面で秘密鍵を選択するダイアログが開くとそのままフリーズしてしまうことがあります。

そんなとき、エクスプローラーを再起動したいのですが、普通特定のプロセスを再起動したいときは、タスクマネージャーから対象のプロセスを選択して強制停止します。

でも、それがエクスプローラーだと、タスクマネージャーもフリーズしてしまっています。そのため、コマンドでエクスプローラーを強制再起動する必要があります。

①コマンドプロンプトを起動する

Windowsボタン+Rで表示されるダイアログで「cmd」と入力してOKボタンを押します。

②エクスプローラーを再起動する

コマンドプロンプトで以下のコマンドを順番に実行します。

実行イメージ

ちなみにtaskkillコマンドのオプションですが、
「/IM explorer.exe」で終了するプロセスのイメージ名を指定しています。
「/F」は強制終了することを意味します。

これで再起動できます。
私は結構な頻度でこれを実施することがあったので、上記のコマンドをWindowsの付箋に貼ったりしてました。


【WebSphere Application Server】強制的にセキュリティを無効にする

WebSphere Application Serverでセキュリティを有効にしている場合、管理コンソールにアクセスできなくなってしまうことがあります。 例えば、「WASのセキュリティ設定を間違えてしまった」、「LDAPサーバと接続できなくなってしまった」、「パスワードを忘れてしまった」などなど。特に、WASの仕組みをよくわかっていない状態で、いろいろ設定をいじくると陥りがちです。(実体験)

そんなとき、構築したてであればプロファイルを再作成すればよいのですが、セキュリティを強制的に無効化する方法があります。

手順① security.xmlを見つける

以下のパスにセキュリティ設定が記述されたXMLがあります。
{WAS_install_directory}/profiles/{profile_name}/config/cells/{cell_name}/security.xml

※パスは環境によって読み替えてください。

手順② security.xmlのバックアップを取得する

security.xmlのバックアップを取得します。IBMはこのファイルを直接編集することをおすすめしてはいないようので。

手順③ security.xmlを編集する

セキュリティが有効になっている場合には、「enable=”true”」となっているので、ここを「enable=”false”」に書き換えます。(以下図の太字部分参照)

<security:Security xmi:version=”2.0″ xmlns:xmi=”http://www.omg.org/XMI&quot;
xmlns:orb.securityprotocol=”http://www.ibm.com/websphere/appserver/schemas/5.0/orb.securityprotocol…; xmlns:security=”http://www.ibm.com/websphere/appserver/schemas/5.0/security.xmi&quot; xmi:id=”Security_1″ useLocalSecurityServer=”true” useDomainQualifiedUserNames=”false” enabled=”true” cacheTimeout=”600″ issuePermissionWarning=”true” activeProtocol=”BOTH” enforceJava2Security=”false” enforceFineGrainedJCASecurity=”false” activeAuthMechanism=”SWAMAuthentication_1″ activeUserRegistry=”LocalOSUserRegistry” defaultSSLSettings=”SSLConfig_1″>
<authMechanisms xmi:type=”security:SWAMAuthentication” xmi:id=”SWAMAuthentication_1″ OID=”No OID for this mechanism” authContextImplClass=”com.ibm.ISecurityLocalObjectGSSUPImpl.WSSecurityContext” authConfig=”system.SWAM” simpleAuthConfig=”system.SWAM” authValidationConfig=”system.SWAM”/>

手順④ WASを再起動する

WASを再起動することで設定が反映されますので、再起動します。ただし、停止時にID/PWを問われるので、停止できません。しょうがないのでプロセスをkillします。

これでセキュリティが無効化されて、管理コンソールにログインできるようになります。

ちなみに、こんな荒っぽい手順ではなく、wsadmin.shを使ってやる方法がWAS小ワザ集紹介されています( https://www.ibm.com/developerworks/jp/websphere/library/was/was_tips/23.html )が、私はこの方法だと上手くいかなかったので、ファイルを直接編集やり方で実施しました。


【Java】整数を均等にn等分するアルゴリズム

ある整数を可能な限り整数のまま等分したいということがあります。例えば、あるバッチ処理で、処理対象件数が300件だとして、スレッド数が9の場合に各スレッドになるべく均等に処理対象のデータを渡したいとします。

この場合、300を9等分するので、[42, 43, 43, 43, 43, 43, 43] と分割されます。Javaで書くとこんな感じ↓

もちろん、割り切れる場合も同じアルゴリズムです。

amount=300、n=9の値を変更すれば好きな値で動きます。

なぜこれでうまく動くのかというと、簡単に言うと、すべて均等に分けたあとに、余りを1ずつ配っているイメージです。

ここら辺のサイトの説明がわかりやすいです。
https://qiita.com/keisuke-nakata/items/c18cda4ded06d3159109
https://tmtms.hatenablog.com/entry/2016/07/27/ruby-split-array

これを知る前は、なかなかイケてないロジックを書いていたな・・・ (;゚Д゚)y