go to post Eduard Lebedyuk · Sep 6, 2018 The easiest solution would be set net.SSLCheckServerIdentity=0 that disables server cert checking. Not very secure obviously.
go to post Eduard Lebedyuk · Sep 5, 2018 Do you want to change ROWSPEC depending on passed argument?ROWSPEC can be changed on compilation only and it's rather static. At least xDBC clients depend on declared schema/query info and so it cannot be changed dynamically.
go to post Eduard Lebedyuk · Sep 5, 2018 it causes error messages as something in the class is not correct,What error messages?Also try calling zwrite %objlasterror it may contain additional information.
go to post Eduard Lebedyuk · Sep 4, 2018 You can use methods of %Activate.TLEnumerator class to load libraries programmatically.
go to post Eduard Lebedyuk · Sep 4, 2018 I think you'll need a full fledged orchestrator for that. Docker run always starts one container, bit several volumes could be mounted, some of them RW, some RO. I'm not sure about mounting the same folder into several containers (again, orchestration).You can also use volumes_from argument to mount directory from one container to another.
go to post Eduard Lebedyuk · Sep 3, 2018 Redefine HTTP adapter like this: Class Production.Adapter.HTTPOutboundAdapter Extends EnsLib.HTTP.OutboundAdapter { /// Send a POST to the configured Server, Port and URL, sending form data to the named form variables. Method Post(Output pHttpResponse As %Net.HttpResponse, pFormVarNames As %String, pData...) As %Status { quit ..SendFormDataArray(.pHttpResponse, "POST", ..GetRequest(), .pFormVarNames, .pData) } ClassMethod GetRequest() As %Net.HttpRequest { set request = ##class(%Net.HttpRequest).%New() set request.ContentType = "application/json" quit request } } And use it instead of default adapter.
go to post Eduard Lebedyuk · Aug 31, 2018 Similar script is used in InterSystems IRIS docker image to scramble passwords on startup.
go to post Eduard Lebedyuk · Aug 31, 2018 Try this:1. Write stream to string2. Use $zcvt on string $zcvt(string,"O","UTF8")3. Send this stream to XSLT
go to post Eduard Lebedyuk · Aug 30, 2018 Can we leverage this application to show globals currently in Global Buffer?
go to post Eduard Lebedyuk · Aug 29, 2018 Speed comparison: Class POI.Test { /// do ##class(POI.Test).main() ClassMethod main(rounds As %Integer = 1000, size As %Integer = 10, nullPercent As %Integer = 20) { set list = ..getList(size, nullPercent) write !,"Rounds: ", rounds write !,"Size: ", size write !,"NullPercent: ", nullPercent write !,"List: " zwrite list set ways = $lb("listnext", "listfind", "lfs", "base") for i=1:1:$ll(ways) { set way = $lg(ways, i) set start = $zh set list2 = $classmethod(,way, rounds, list) set end = $zh set time = end - start write !,"Way: ", way write !,"Time: ", time write !,"List: " zwrite list2 write ! } } ClassMethod base(rounds As %Integer = 1000, list As %List) As %List { for i=1:1:rounds { set origList = list } quit origList } ClassMethod listfind(rounds As %Integer = 1000, list As %List) { for i=1:1:rounds { set origList = list set ptr=0 for set ptr=$LISTFIND(origList, $c(0), ptr) quit:'ptr set $LIST(origList, ptr, ptr)=$lb() } quit origList } ClassMethod listnext(rounds As %Integer = 1000, list As %List) { for i=1:1:rounds { set list2 = "" set ptr = 0 while $listnext(list, ptr, elem) { if elem'=$C(0) { set list2 = list2 _ $LB(elem) } else { set list2 = list2 _ $LB() } } } quit list2 } ClassMethod lfs(rounds As %Integer = 1000, list As %List) { for i=1:1:rounds { set str = $lts(list) set str = $tr(str, $c(0)) set list2 = $lfs(str) } quit list2 } ClassMethod getList(size As %Integer = 10, nullPercent As %Integer = 20) As %List { set list = "" for i=1:1:size { set list = list _ $lb($select($random(101)<=nullPercent:$c(0),1:$random(50))) } quit list } Results: POI>do ##class(POI.Test).main(1000000) Rounds: 1000000 Size: 10 NullPercent: 20 List: list=$lb(25,20,$c(0),$c(0),4,42,$c(0),28,44,3) Way: listnext Time: .944814 List: list2=$lb(25,20,,,4,42,,28,44,3) Way: listfind Time: .610244 List: list2=$lb(25,20,,,4,42,,28,44,3) Way: lfs Time: .430088 List: list2=$lb("25","20","","","4","42","","28","44","3") Way: base Time: .032151 List: list2=$lb(25,20,$c(0),$c(0),4,42,$c(0),28,44,3) listfind solution seems optimal.
go to post Eduard Lebedyuk · Aug 29, 2018 Thanks, Robert.It works fast, but replaces $c(0) with empty string instead of empty element.Can $list replace replace $c(0) with empty element?I posted it as a related question.