Skip to main content

How to get Domino database from on disk project to server in a batch file

Originally posted in Sutol Connections

Martin Jinoch wrote an article about parameters required for headless designer
I did some experiments how to get the db to a server. Here are first thoughts. I'Il probably write more later.
 
I had to create 2 components:

1. Batch file to run it
2. NSF db that does notes operations


1. In batch file biggest issue was to find when the job is done, since it creates separate processes. Google offered some advices, so I ended up using pslist from pstools and sleep command found somewhere else.

Here is the file
designer.exe -RPARAMS -console -vmargs -Dcom.ibm.designer.cmd="true,true,trtest.nsf,importandbuild,C:\Git\Teamroom\TR\.project,trtest.nsf"

@echo off
:LOOP
C:\pstools\PSLIST notes2 >nul 2>&1
IF ERRORLEVEL 1 (
  GOTO CONTINUE
) ELSE (
  ECHO designer is still running
  C:\sleep\SLEEP 5 /quiet
  GOTO LOOP
)

:CONTINUE

echo "launch client to copy"

nlnotes.exe notes:///cideploy.nsf/84AD4CF25D638F66C1257C77006547DA/53D2901644D70EDFC1257C77006588AA?OpenDocument

echo "open"

explorer http://mytestserver/servertr.nsf

2. Local db that has configuration profile for the app. it is called using notes:// link (and calling it with nlnotes has nice sideeffect that it waits to complete). Biggest issue was to automatically closed notes when done.

Link actually opens document using form that has queryopen event to do the job and postopen with @Command([ExitNotes]) . It has to be called using viewunid and unid of the document, since I use form formula of the view to redirect it to form that does the job, instead of standard form that I use for configuration.

Code can be than pretty much anything I have for now just:
    Dim doc As NotesDocument
    Set doc=source.document
  
  
    Dim sourcedb As New NotesDatabase("",doc.profilekey(0))
    If sourcedb.IsOpen Then
      
        Dim targetdb As New NotesDatabase(doc.targetserver(0),doc.targetnsf(0))
      
        If targetdb.IsOpen Then
            Call targetdb.Remove
        End If
      
        Call sourcedb.CreateCopy(doc.targetserver(0),doc.targetnsf(0))
      
    End If
  
And that's all. I tested it with teamroom db and it worked fine.

Comments

Popular posts from this blog

HCL Domino SSO with Microsoft Teams

 Microsoft Teams is probably one of the most used tools this year, it was already quite popular before the pandemic started to spread across the world this spring, but now most of the businesses I work with use it. After using it just like a chat/conferencing tool, many start to explore further capabilities of the platform. When working with Domino data in apps that are web-enabled, it can be quite easy - just add a web tab anywhere you want. The problem is, that you need to deal with user authentication. 

XPages EL/class-loader memory leak (now with solution)

 We have recently experienced OutOfMemory crashes of XPages app server. The server was recently upgraded to 12.0.1FP1, but we were getting some panic crashes in HTTP even before the upgrade (it was 9.0.1FP10). Our hopes were that the upgrade would stabilize the server, but it's not the case. At least now I start to see what's the problem.  update 8.12.2022 There were actually 3 different leaks. I have rewritten the article to be a bit more clear. I also re-run some of the tests on 9.0.1FP10, so I assume the problems are also in earlier versions. Problem 1 The server is hosting over 1000 NSF sharing the same design + some other custom apps. Not all NSFs are used via web as the app still has classic Notes UI in parallel, so it's a bit tricky to estimate the load. By using tell http xsp show modules I usually see around 350 NSFs active. We kept the default application timeout that should provide reasonable application recycling if it's not used continuously.  We started to

HCL Domino 12.0.2, Engage 2022 and HCL Factory tour Milan

 I haven't published my recap after Engage this year and the recent HCL Factory tour in Milan is a great opportunity to write a summary about what's happening in HCL (mostly Domino) space. It's a mix of news about 12.0.2, future directions, and my impressions, so it can be a bit chaotic, but I got the impression that many people see it similarly.  Engage 2022 Engage 2022 was great (as always). I love the atmosphere in Brudges. I visited it once after Engage a few years ago and I was happy to come back. This was also the first time I had the opportunity to speak at Engage, which obviously made it a bit more stressful, but also more fun. Together with Domino Jams, HCL continued conversations with customers and partners about the future of their products at Engage. Many of these ideas were now discussed in greater detail in Milan, some of them were even demoed.  My main takeaways from Engage were: Nomad (web and mobile) are a great addition to Notes family Restyle is a great g