Hope i understood your problem correctly.

This sort of sounds like a "DataMigration" task, loading legacy information into the current IRIS database.

If you know an exact date where the value was available in the current messages, a onetime load based on an extract for legacy messages would be enough i think.

Then amend the messaging code to add the field if its not there, based on the lookup table, this should only happen for legacy messages, not new messages as they would already have the field.

 

Most annoying "feature" when i started to learn objectscript was the very strict left to right processing

e.g. if a>0 & b< 0 {} get evaluated as (((a>0) & b) <0) not as you would expect (a>0) & ( b<0)

also very strange variable casting from number to string.

e.g
set a=1
set b="7 dwarves"

w a+b

actually return 8 instead of e.g. concatted string "17 dwarves"  or a variable casting error as in other languages 
But meanwhile i love it :D

Just wondering my initial thought was that just use the master process to initiate the transaction check the returned stati and rollback if it has failed. 

This can be done with WQM easily enough.

  Set queue=$system.WorkMgr.%New()
  If (queue="") { 
  // Report Error, can check %objlasterror for %Status code
  }
  
  TSTART
  For i=1:1:100 {
  	Set sc=queue.Queue("##class(MyClass).ClassMethod",i) 
  	If $$$ISERR(sc) {
  	// report error
  	}
  }
  
  Set sc=queue.Sync() 
  If $$$ISERR(sc) {
    // A worker encounteres an issue
    TROLLBACK
  } and {
    // no errros reported by workers
    TCOMMIT  
  }


That should work just fine, i haven't tested it though.

Hi Anna,

this would iterate through a file line by line checking if the line contains a keyword and then outputting the line. also it will continue outputting until another condition resets the found variable to 0.

    Set stream=##class(%FileCharacterStream).%New()
    Set stream.Filename="c:\myfile.txt"
    set keyword="MyTestWord"
    set found=0
    While 'stream.AtEnd {
        Set line=stream.ReadLine()
        if (line [ keyword) {
            // the line contains the keyword out put line
            w !,line
            set found=1
            continue
        }
        if (found=1) {
            // keyword was previously found so continue outputting line
            w !,line
        }
    }

Having an instance frozen for 8minutes is not so good in my experience.

Have you considered to move to snapshot based external backups? Using ShadowCopies on windows and LVM snaps on Linux? This will reduce the freeze time to the time used to actually take the snapshot. Then CommVault can backup the snapshot drive while IRIS continues on unfrozen.

Hi,

This sounds like a misconfiguration on the webgateway.

PWG get configured automatically by IRIS for all web applications. Not sure if this happens for the external webgateway.

There also could be an issue with webgateway integration into external apache.

Also worth to check audit database in IRIS. To see if any errors get logged.

Hope this helps.

Best Regards

Timo