Robert Cemper · Aug 6, 2017 go to post

If this user should also be programmer you can create a new role copying from %Developer
and then remove the DB's that you want him to lock out like this  just for NS = USER


.

Robert Cemper · Aug 6, 2017 go to post

Thanks for the pointer!
Good to see that someone got the time to productize the idea of Custom Index Type
With this development the win could have been even more dramatic.
My benchmark was done in  March2011,  so Caché version must have been 2010 .  
2013.1 was my last version @ISC  just rolling out.
At that time bitmaps helped only with rather relaxed precision.

Robert Cemper · Aug 3, 2017 go to post

For an engineer this sounds like a quite challenging exercise to rewrite a PGP lib in COS.
 

But it seems more promising to wrap the existing (and hopefully well tested) code and consume it from Caché using one of the existing Gateways:

- Callout Gateway http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…

- ActiveX Gateway  http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…

- or just  connect
over TCP/IP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
or UDP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
or a Pipe  http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
I bet the community has even more ideas to reuse the existing code

Robert Cemper · Aug 3, 2017 go to post

indeed this is surprising.

but is this really:   do content.ReadLine(,,isEOL)

it should be a pass by reference to receive something back do content.ReadLine(,,.isEOL) 
with the <dot> in front of the variable 

Robert Cemper · Aug 2, 2017 go to post

You still have the option to create your own %ZLANGC00.int 
and make you own ZZEXIT to avoid the risky HALT
It's a miracle to me how HALT could survive from PDP-7 sn#103 at MGH and nobody touched it.
                           

Robert Cemper · Aug 2, 2017 go to post

to me this looks like your content had an extra $C(13,10) at the end.
It could help to  have the full content at hands. 
eg:
before  content.OutputToDevice()
set ck=content.Read()
set ^ck($i(^ck))=ck
do content.Rewind()

I expect  zwrite ^ck will show more than 3  lines
That would indicate that the source of trouble is on the input side. 
Some closing action ?   

Robert Cemper · Aug 2, 2017 go to post

if you change wnl() ...
to
wnl()  quit
you just disable it to see if it plays a role at all    

Robert Cemper · Aug 2, 2017 go to post

I don't see a call for  wnl()   
but ancient coding practices  would suggest its:  writenewline just that
and that's what it does without any other content.
though the remark is rater direct if interpreting feedback := line

// Should be smart as well: routines ending with write ! will create an empty feedback!
Robert Cemper · Aug 2, 2017 go to post

just a guess:
with do content.MoveTo(content.Size - 1)   you are probably just between CR and LF 

Could you try do content.MoveTo(content.Size - 3)  just to make sure you a e before CRLF

I'm not sure how EOL is triggered
eventually also check returned success code

Robert Cemper · Aug 2, 2017 go to post

1)  
%Stream.GlobalBinary has a warning:

Note that on a unicode Cache although you can write unicode data into this class and read it back out this is not a supported use of this class and the Size property would be incorrect in this case as it would be the size in characters rather than the size in bytes

2)
   do content.OutputToDevice()
now your content is out and you are positioned at end

    do content.MoveTo(content.Size)
now you re-read content until LastCharacter-1, whatever total size might be
    set isNewLineTerminator = (content.Read(1) = $char(10)) 
reading the assumed last character

3)
you might be better off to use  
content.ReadLine(,.sc,.eol) and check eol for the termination status

Robert Cemper · Aug 2, 2017 go to post

The first thing to check in Mgmt Portal is size of Global Buffers  - Rule of thumb: 50% of available RAM
http://<yourhost>:<yourport>/csp/sys/mgr/%25CSP.UI.Portal.MemoryStartup.zen

Check Cache Efficiency in System Dashboard before and after restart
http://<yourhost>:<yourport>/csp/sys/op/UtilDashboard.csp?$NAMESPACE=

Robert Cemper · Aug 2, 2017 go to post

Thanks Ed! 
I just went through old DC post for half an hour+ to detect it. frown

It's much better than my link to Facebook. yes

Regards

Robert Cemper · Aug 1, 2017 go to post

do you look for this one?

%ENSInstallDir%\CSP\broker\portal\EnsembleLogo210x50.png

Robert Cemper · Jul 31, 2017 go to post

 (in my case 192.168.56.1), whereas one would need 71.174.62.16

This means you try to get information that is stored in your router's and/or firewall's  (NAT, DHCP,... ) routing/mapping table.
I'd assume you need to use some utility of your OS using $ZF(-1,...) $ZF(-2,...) to get the outside view of the inside server

This might work inquiring nslookup on a DNS server outside your NAT, ...  Though I never tried it

Robert Cemper · Jul 31, 2017 go to post

Hi,
without any  REST (at that point)  as you expect to hand action from front-end to back-end:

If your front-end is able to listen on a dedicated IP port  then all you need is to send your data to the (negotiated?) IP:port.
Take a look to %Net.HttpRequest 
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…

From point of view of Caché your front-end acts then like a web-server receiving data.
Your reply from front-end  signals to Caché that the front-end is ready for the next junk / or terminates the stream

Robert Cemper · Jul 31, 2017 go to post

This is a matter of interpretation.
If you also allow leading 0 for integers   (eg. 00123) then you need to normalize it.

Robert Cemper · Jul 29, 2017 go to post

You are right. The check for pure number got lost

if  +number=number  has to precede 

so the combined is  if  +number=number,number\1=+number

Robert Cemper · Jul 28, 2017 go to post

The oldest and most simple and fastest integer check is
if value\1=+value

\1 strips trailing decimals,  + strips leading 0

; just pure integer arithmetics no string checks

Robert Cemper · Jul 28, 2017 go to post

Journaling a DeepSee environment is a real performance killer.
Take a look of the Journal when  using a Bitmap Index 

Robert Cemper · Jul 27, 2017 go to post

since every installation of Caché has it's gateway I'm not clear what you did by
" configured as CSP gateway. "
with no manual change the gateway always talks to your local server  ser-app-w

From CSPgatewayMgmt on ser-app-w  you should check access to ser-app-db

Robert Cemper · Jul 25, 2017 go to post

so you may use $$$comClassDefined(class)  for compile classes

or go for ^oddCOM(....)

Robert Cemper · Jul 25, 2017 go to post

I just got this information:

Developer group worked at it and version 2018.1 1 will contain the new pattern.

smileysmiley