go to post Dmitry Maslennikov · May 24, 2021 It’s a binary file and it’s contest for the current context not so important, what’s important is an ownership of the file. So ls -la /usr/local/etc/irissys/iris.reg
go to post Dmitry Maslennikov · May 22, 2021 Check the ownership of the file iris.reg, which should be in /usr/local/etc/irissys The owner of this file is supposed to be used to control IRIS
go to post Dmitry Maslennikov · May 21, 2021 You would need to copy %JSON package from the latest IRIS version, but not sure if it will work.
go to post Dmitry Maslennikov · May 21, 2021 Depends on what are you trying to achieve. Import as is, with an iterator Class User.Test Extends (%RegisteredObject, %JSON.Adaptor) { Property name As %String; ClassMethod Import() { Set data = [{ "name": "test1" }, { "name": "test2" }] Set iter = data.%GetIterator() While iter.%GetNext(.key, .value) { Set obj = ..%New() Set tSC = obj.%JSONImport(.value) Write !,obj.name } } } Import with a wrapper object Class User.TestList Extends (%RegisteredObject, %JSON.Adaptor) { Property items As list Of User.Test; ClassMethod Import() { Set data = [{ "name": "test1" }, { "name": "test2" }] #; wrap to object Set data = { "items": (data) } Set list = ..%New() Set tSC = list.%JSONImport(.data) For { set obj = list.items.GetNext(.key) Quit:key="" Write !,obj.name } } }
go to post Dmitry Maslennikov · May 20, 2021 jsonProvider was invented before native JSON support was added. And there is no reasons to use it already. If you need a JSON representation for an object, look at %JSON.Adaptor
go to post Dmitry Maslennikov · May 20, 2021 Could you try to open URL in any Browser. http://192.168.245.118:57789/api/atelier/ It should offer to enter login and password, in a modal dialog, and after that should some JSON. In your case, looks like it responses with some HTML, probably with some error, like not found 404.
go to post Dmitry Maslennikov · May 20, 2021 Some info about blocks, in this article and others in cycle.
go to post Dmitry Maslennikov · May 20, 2021 Jeffrey, thanks. But if I would have only 16KB blocks buffer configured and with a mix of databases 8KB (mostly system or CACHETEMP/IRISTEMP) and some of my application data stored in 16KB blocks. 8KB databases in any way will get buffered in 16KB Buffer, and they will be stored one to one, 8KB data in 16KB buffer. That's correct? So, If I would need to separate global buffers for streams, I'll just need the separate from any other data block size and a significantly small amount of global buffer for this size of the block and it will be enough for more efficient usage of global buffer? At least for non-stream data, with a higher priority?
go to post Dmitry Maslennikov · May 19, 2021 This is only for external access to this label, without it, you would not be able to call this from terminal or from another routine or class. Curly braces makes it private by stack.
go to post Dmitry Maslennikov · May 19, 2021 Having multiple different global buffers for different block sizes, does not make sense. IRIS will use bigger size of block for lower size blocks inefficiently. The only way to separate is, to use a separate server, right for streams.
go to post Dmitry Maslennikov · May 18, 2021 I suppose, the issue in your settings.json, which I see you have opened. Could you check if it's really a JSON, and correct? If possible, could you attach the screenshot with it as well?
go to post Dmitry Maslennikov · May 18, 2021 Could you attach screenshots? It's not clear when you get the error.
go to post Dmitry Maslennikov · May 18, 2021 I've mentioned above a system with a significant amount of streams stored in the database. And just checked how global buffers used there. And streams are just around 6%. The system is very active, including files. Tons of objects created every minute, attached files, changes in files (yeah, our users can change MS Word files online on the fly, and we keep all the versions). So, I still see no reasons to change it. And still, see tons of benefits, of keeping it as is.
go to post Dmitry Maslennikov · May 17, 2021 Fragmentations issues, with SSD disks not an issue anymore. But in any way, I agree with storing files in the database. I have a system in production, where we have about 100TB of data, while more than half is just for files, stored in the database. Some of our .dat files by mapping used exclusively for streams, and we take care of them, periodically by cutting them at some point, to continue with an empty database. Mirroring, helps us do not to worry too much about backups. But If would have to store such amount of files as files on the filesystem, we would lose our mind, caring about backups and integrity.
go to post Dmitry Maslennikov · May 17, 2021 LuhnMCheckSum(input) public { Set input = $Piece(input, "#", 1) Set codePoints = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/:" Set n = $Length(codePoints) Set sum = 0 Set factor = 2 Set len = $Length(input) For i = len:-1:1 { Set codePoint = $Find(codePoints, $Extract(input, i)) - 2 Set addend = factor * codePoint Set factor = $Case(factor, 2: 1, : 2) Set addend = (addend \ n) + (addend # n) Set sum = sum + addend } Set remainder = sum # n Set checkCodePoint = (n - remainder) # n Return $Extract(codePoints, checkCodePoint + 1) } LuhnMValidate(input) public { Set checksum = $Piece(input, "#", 2) Set input = $Piece(input, "#") Return $$LuhnMCheckSum(input) = checksum }
go to post Dmitry Maslennikov · May 14, 2021 Is this, what are you looking for?https://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers#MUMPS
go to post Dmitry Maslennikov · May 14, 2021 In most cases, it’s enough to just create empty certificate with just default values. how do you use it?
go to post Dmitry Maslennikov · May 14, 2021 what will show the output of locale command in OS? So, your filesystem may not accept Unicode. And you would need to convert Unicode to a more suitable codepage.
go to post Dmitry Maslennikov · May 13, 2021 So, you just need help in find the place in the class which cause an error? I would suggest to try removing each class member one by one, until you’ll narrow it to one member, and maybe you’ll realize why it’s happening.