Category Archives: Allgemeines

Alles was sonst nirgends passt.

SSL0115E: Initialization error, Error validating ASN fields in certificate

Today I got a call that a IBM HTTP Server stopped working after a reboot. The service starts and ends again after some seconds. In the error_log of IBM HTTP we found following messages:

[notice] Bld version: 8.5.5
[notice] Bld date: Oct 30 2014, 11:44:02
[notice] Webserver: IBM_HTTP_Server
[notice] Using config file C:/IBM/HTTPServer/conf/httpd.conf
[notice] IBM_HTTP_Server/8.5.5.4 (Win32) configured -- resuming normal operations
[notice] Server built: Oct 20 2014 10:58:09
[notice] Disabled use of AcceptEx() WinSock2 API
[notice] Parent: Created child process 4004
[crit] Error 10 initializing SSL environment, aborting startup
[error] SSL0115E: Initialization error, Error validating ASN fields in certificate. Configuration Failed
[crit] (OS 1813)The specified resource type cannot be found in the image file.  : master_main: create child process failed. Exiting.
[notice] Parent: Forcing termination of child process 5 

Good source found was:
https://developer.ibm.com/answers/questions/195652/why-is-the-ibm-http-server-8x-version-fails-to-sta.html

In our case the Stashfile was configured with a expiration date. So just open the keyfile, change password and check that the option expiration of stash is deactivated.

Some shortcuts with vim

Many of you know that i like VI/VIM and when i say editor it must be VIM. Often i hear at customer sites or from my colleagues, that they can’t work with vi, that shortcuts are hard to remember or even they can’t save their changes.

When you remember some short commands, you can work very fast and you can edit files through all connections (ssh, x-forward) to a server.

I created a mindmap as preparation for a speedgeeking session, the session wasn’t accepted, but the file is already done. So you can download a cheat-mindmap with a collection of shortcuts.

Navigate in files

Shortcuts in command mode:

  • gg – top of file
  • G – end of file
  • :## – ##=number go to line number
  • 0 – beginning of line
  • $ – end of line

Save and undo

  • :w – save file
  • :wq – save and close
  • :q! – close and do not safe
  • u – Undo

Some additional things

When i need to change Connections URLs within LotusConnections-config.xml after adding the webserver to my ISC, i can do this with one line.

Changing Connections URLs

Checkout LotusConnections-config.xml and edit with vim. You will find several links to your application server hostname with WebSphere ports (e.g. http://washost1.example.com:9081). When you use a large deployment you have about 15 application servers with http and https links, so you need to change 30 different urls.

With vim we can use regular expressions to change the urls. Lets change washost1.example.com:anyport to connections.example.com.

Open LotusConnections-config.xml with vim and stay in command mode. Type

:%s/washost1.example.com:9[0-9]*/connections.example.com/g

lc1

  • :%s is search and replace,
  • first part within / / is text which will be replaced
  • [0-9]* any count of a number
  • g global replace (multiple search text in one line)

lc2

Comment out some lines in httpd.conf

I often test things in my IBM HTTP Server Configuration and when i want to comment out some lines or remove the comment signs there is a easy way with vim.

Open httpd.conf and hit Ctrl+V (enters Visual Block mode),

visualblock

now you can mark some characters with j (moves cursor down) or arrow keys:

mark

Now type a capital i -> Shift+i, the cursor jumps back to the first character you marked and you can add text (e.g. “# “):

addcomment

finish the commands with ESC:

commentout

Remove characters in multiple lines

You can remove the comments with nearly the same command.

Open the file, change to visual block mode (ctrl+v), mark the characters with arrow keys and remove with d.

mark2

commentremove

Customizing IBM Connections Profiles – Add custom field to searchResults

Adding a custom field to IBM Connections Profiles is great documented in “SHOW301: Make Your IBM® Connections Deployment Your Own: Customize It!” the Connect 2014 session of Wannes Rams and Klaus Bild. Thanks to them for this great collection of customizing tipps.

In my case the bundle name is “stoeps” and the custom field i want to add is “twitterId”.

lotusconnections-config.xml

<resources>
    <!-- Custom strings for field labels --> 
    <widgetBundle name="local.stoeps.profiles.strings.uiLabels" prefix="stoeps"/>
</resources>

local.stoeps.profiles.strings.uilabels.properties

# extension property field labels
label.stoeps.twitterId=Twitter Id:

profiles-types.xml

<property>
   <!-- Custom field for Twitter ID -->
   <ref>twitterId</ref>
   <updatability>readwrite</updatability>
   <hidden>false</hidden>
</property>  

profiles-config.xml

Checkout profiles-config.xml and change following points:

<profileDataModels>
    <profileExtensionAttributes>
    ...
        <simpleAttribute extensionId="twitterId" length="180 />
    </profileExtensionAttributes>
</profileDataModels>

Uncomment the extensions templateData:

<template name="businessCardInfo">
  <templateDataModel>
        <!--  include if you render workLocation, organization, department information -->
        <templateData>codes</templateData>
        <!--  include if any only if you render profile extension fields in the template -->
        <templateData>extensions</templateData><!-- activated for twitterId in searchResult -->
        <!--  include if you render secretary name or email in the template -->
        <!--   <templateData>secretary</templateData> -->
        <!--  include if you render manager name or email in the template -->
        <!--  <templateData>manager</templateData> -->  
        <!--  include if you render information dependent upon two users being connected -->
        <!--  <templateData>connection</templateData> -->               
  </templateDataModel>
</template>
<template name="searchResults">
  <templateDataModel>
        <!--  include if you render workLocation, organization, department information -->
        <templateData>codes</templateData>
        <!--  include if any only if you render profile extension fields in the template -->
        <templateData>extensions</templateData><!-- activated for twitterId in searchResult -->
        <!--  include if you render secretary name or email in the template -->
        <!--   <templateData>secretary</templateData> -->
        <!--  include if you render manager name or email in the template -->
        <!--  <templateData>manager</templateData> -->                  
  </templateDataModel>            
</template>
...
<searchLayout>
...     
<!-- custom field in searchResult -->
<extensionAttribute showLabel="false" labelKey="label.stoeps.twitterId" bundleIdRef="stoeps" extensionIdRef="twitterId"/>
</searchLayout>

Now you must add following line to :

profilesEdit.ftl

I added following line within <@util.renderSection sectionLabel=”contactInformation”>:

<@util.renderFormControl ref="twitterId" singleColumnLayout=false nlsBundle="stoeps" nlsKey="label.stoeps.twitterId"/>

profilesDetails.ftl

<#-- Customize start -->
<#-- Adding a field twitter id -->
<@util.renderProperty ref="twitterId" nlsKey="label.stoeps.twitterId" nlsBundle="stoeps" hideIfEmpty=true ;  ref, dataId, dataKey, nlsKey, nlsBundle>
    <@util.renderValue ref=ref renderAs="twitter" />            
        <br/>
</@util.renderProperty>     

<#– Customize end –>

searchResults.ftl

I added following code above the renderProperty of jobResp:

<@util.renderProperty ref="twitterId" nlsKey="label.stoeps.twitterId" nlsBundle="stoeps" hideIfEmpty=true ;  ref, dataId, dataKey, nlsKey, nlsBundle>        
    <div>
         <@util.renderValue ref=ref renderAs="twitter"/>
    </strong>   
    </div>
</@util.renderProperty> 

renderAs comes from commonUtil.ftl, to format a URL to the Twitter Homepage.

commonUtil.ftl

...
<#elseif renderAs = "email">
    <a href="mailto:${value}">${value}</a>
<#-- customize start -->
<#elseif renderAs = "twitter">
    <#-- special rendering for twitter id -->
    <a href="http://twitter.com/${value}" target="_new">@${value}</a>       
<#-- customize end -->
<#elseif renderAs = "blogUrl">
...

Result:

search result

Selection_20140415_11:28:28_001

Profile

Selection_20140415_11:37:41_001

IBM Connect 2014

IBM Connect 2014 is here. I enjoyed the last days very much! Meeting great old and new friends, community members and the IBM Champions family.

I’m very impressed of the news IBM provides us. New IBM Mail and Connections Mail, Connections next and the integration of lots of software within IBM Connections.

Today i will make my session “BP 307 – Practical Solutions for Connections Administrators – Tips and Scripts for Your Daily Business” with the incredible Sharon Belamy. When you’re here in Orlando, we would be happy to see you there:

Find some videos of our demos here: https://www.dropbox.com/sh/2lio4h18rp0r88a/N-Bz9FHXmn

Eclipse As A Jython IDE

I added several plugins to my Eclipse, so i can access the scripts on GitHub and edit through an IDE:

Jython and Python Development

PyDev: http://pydev.org/updates

Markdown (Documentation within Github)

Markdown: http://winterwell.com/software/updatesite/

Access GitHub:

EGIT: http://download.eclipse.org/egit/updates

Shellscript Editor

EasyShell: http://pluginbox.sourceforge.net

ShellEd: http://sourceforge.net/projects/shelled/files/shelled/update/

SQL Scripts

SQL Explorer: http://eclipsesql.sourceforge.net/