Nevermind.dk


Maven - how to get dependency JAR files in build too


Maven may be smart to some ....but it is also a bloody XML nightmare, where many things can go wrong ...(or maybe it just me being stupid)

Just a reminder to myself....when I want to have dependency JAR files in build too , add this to pom.xml file



<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- <classpathPrefix>lib</classpathPrefix> -->
<!-- <mainClass>test.org.Cliente</mainClass> -->
</manifest>
<manifestEntries>
<Class-Path>lib/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Published by: Jesper B. Kir at 15/09/2017 13.22.19 Full Post


IBM Domino, a very annoying performance issue now SOLVED


For the past years a customer of mine has had IBM Domino performance issues with a Domino Server.

The issue concerned was really felt when working with attachments.


The company has small offices around the world, so we use SmartUpgrade (which in general works well) to manage Notes Feature Pack upgrades.
We attach the Feature Pack as an attachment in the SmartUpgrade database and use a Policy to push it to users.
Normally this is very fast, but for one server it would maybe take 5 hours to download the file.
The download would start at a decent speed and then only get slower and slower and in the end literally only move a few bytes at the time.
We tried "everything" ...even moving to newer faster hardware did not make any change.

The server is a Windows 2012 R2 server with Domino 9.0.1. FP8 in a Domino cluster. The other server is Linux server which did not have the issue.

The solution
The relevant difference between the two servers Domino in the Notes.ini configuration, was the setting for TCP.
The customer use encryption and compression on the Notes TCP connection

Notes.ini
The Windows server had: TCPIP=TCP,0,15,0,,45088
The Linux server had: TCPIP=TCP, 0, 15, 0,,32800

If looked at the documentation for TCP setting it says:

The TCPIP port line can contain up to six arguments as described below, with the first position numbered as position 0.

Initialization arguments:
argv[0] Driver name
argv[1] Adapter number (unused)
argv[2] Requested number of sessions (unused)
argv[3] Data buffer size to use. If the value is 0, the default size is used. Default sizes are different for different port drivers, as follows:
argv[4] Number of network buffers to preallocate (unused)
argv[5] Port flags, as follows:
0 X 8000 Encryption is enabled
0 X 0020 Compression is requested

Since we use Compression and Encryption of the connection we should have 8020 in hexadecimal for last parameter, which in decimal is 32800.
That is value we had on the fast Linux server. After changing the value on the Windows server to

TCPIP=TCP, 0, 15, 0,,32800

the network was much faster and SmartUpgrade became just as fast as on the Linux server :-)

The big question is why does the Domino installer suggest TCPIP=TCP,0,15,0,,45088 ??
and what are the undocumented Port flags used in this scenario?
Published by: Jesper B. Kir at 29/08/2017 09.52.43 Full Post


IBM Domino lessons learned from using the new FP8 feature of having the view index outside the NSF database (NDX)


At a customer today I wanted to implemented the new IBM Domino feature of having the view index outside the NSF.

First I upgraded to FP8 IF3, then I updated notes.ini from the configuration document with the new setting NIFNSFEnable=1 and restarted the server.


I then wanted to start carefully with one database only ...with something like "load compact -c -nifnsf on databasename.nsf".

Lesson 1)
Unfortunately I misspelled the database path and hit enter. To my surprise the Domino server did not just report back in the console that the database could not be found, ...instead is started compacting on ALL DATABASES!
Not quit what I expected or wanted .... but I let it continue
Lesson learned...software does not always act as expected ...act accordingly..get you spelling in order!

Lesson 2)
I kept an eye on the compacting and I noticed that one big database (GB) just barely got touched only creating a small NDX file and the compacting moved on.
I am a little unsure what to expect now. My guess that it created some kind of "stub", because the database most likely was in use it could not compact it.
So I hope that when DBMT starts compacting it will finish the job....but I am not sure, may need to run the ""load compact -c -nifnsf " again.
Lesson learned ... it is always "fun" when software stops in the middle of doing something ...what is going to happen next?

Lesson 3)
OK this one i primarily my fault,... I got the great idea ..why not open the NDX file in the Domino Designer and have a look around?
Lesson learned... don't do that... your server will come to a grinding halt...
You are probably not meant poke around in a NDX database ;-)

I am sure there is plenty more to be learned...
Published by: Jesper B. Kir at 30/05/2017 15.22.00 Full Post


Making "X-Forwarded-For" log feature IBM Domino FP8 actually work


In March I wrote about the new log feature in IBM Domino in connection with using a Reverse Proxy.

http://nevermind.dk/nevermind/blog.nsf/subject/new-logging-feature-in-ibm-domino-fp8-when-using-reverse-proxy---x-forwarded-for


The issue is that you will always get the IP address of the Reverse Proxy in you HTTP log files and not the actual IP of the user.
This is what the HTTP header "X-Forwarded-For" is used for, however pre FP8 is was not supported on IBM Domino server.
In FP8 it is supported...but not documented.
Thanks to Vitor Pereira who (commented on my blog entry) created a PMR, we now have an answer how to get it working.
Add HTTP_LOG_ACCESS_XFORWARDED_FOR=1 to the servers notes.ini file, restart server and it works!
However if you using domlog.nsf for log data (which is fine for low traffic) you need to change the design to see the X-forwarded-for IP.
You would presume the item would be named something like "XForwardedFor", but no .. it is "ForwardedFor" ..or rather because it is misspelled it is "ForwaredFor" ;-)
Published by: Jesper B. Kir at 17/05/2017 13.04.00 Full Post


New logging feature in IBM Domino FP8 when using Reverse Proxy - X-Forwarded-For


When using a Reverse Proxy (like Nginx) is in front of a IBM Domino web server you have the issue that the IP address of the client accessing the Domino web server is not forwarded to the log files on the Domino server.

What you get is the IP address of the Reverse Proxy instead...which is not very helpful.



This is normally fixed by the Reverse Proxy server adding a HTTP header field called "X-Forwarded-For" (XFF) which the web server then can log.
Unfortunately the IBM Domino web server will no log the "X-Forwarded-For" field..until FP8 it seems.

A long overdue request from 2010 apparently has been fulfilled in FP8.
My question is just ...how to enable? .. a notes.ini setting ?
anyone knows?

(I presume the "X-Forward" is actually supposed to be X-Forwarded-For (?)
Published by: Jesper B. Kir at 28/03/2017 16.28.00 Full Post


IBM Domino: Moving the view indexes outside the NSF database


As a new feature in IBM Domino Feature Pack 8 (FP8) for IBM Domino 9.0.1 is that you can move the view indexes outside the NSF.

View indexes and Full Text Indexes are data derived from the "core" data, the documents in the database.


This means they can always be rebuilt, if you have the data in the documents.

Benefits from moving view index outside NSF:
1) A smaller database file size, to avoid reaching the 64GB limitation.
2) Faster database backup and restore.
3) Better performance by allowing concurrent access to database and views.

1) Very important when having large databases with many documents. View indexes can easily take up many GB.
Use the Administrator "Manage Views" to see the view sizes in the databases
Example (MB):

2) I use DomBackup (Openntf) which is very fast and does not care about indexes,
3) Updating view locks views so this is a very nice and important enhancement

How to enable
To enable moving view indexes outside NSF is very simple and need just a few steps.
1) You must run Feature Pack 8 (FP8)
2) Set parameter NIFNSFEnable=1 in Notes.ini and restart server.
3) Make sure you have transactional logging enabled on server and ODS is minimum 51
4) To enable the feature for a database you need to compact it with the parameters: "load compact -c -nifnsf on databasename.nsf"
It will the create an index file with the extension .ndx
This from a database I have enabled the feature for.


I have had no issues so far.
What about ACL, Readers? I asked IBM this in a Q&A and they told me that the view data was encrypted

There are other features like moving the index to another folder etc.
Have a look here https://www.ibm.com/support/knowledgecenter/en/SSKTMJ_9.0.1/admin/admn_moving_views_out_of_databases.html
Published by: Jesper B. Kir at 13/03/2017 14.23.00 Full Post

Read More