go to post Robert Cemper · Feb 5, 2024 You can map PACKAGE [aka. SQL Schema] to another Namespasce (not a single table)e.g. Bna.Utils to namespace %ALL or just to a specific namespaceso you have Table and Class (= the code) available. If you want to share also DATA you need to map also the related Global
go to post Robert Cemper · Feb 3, 2024 I met some issues in the past, where I miss any idea of how to check verification of %variables or variables in global scope variables set as 3rd parameter in $QUERY() or $ORDER() - should be easier to detect. not sure if variables passed ByRef or Output are fixed meanwhile
go to post Robert Cemper · Feb 3, 2024 In Windows it's netstat running from CMD as AdminMy preferred option: netstat -anop TCP (shortened) C:\WINDOWS\system32>netstat -anop TCP Aktive Connection Proto Lokal Address Remote Address Status PID TCP 0.0.0.0:21 0.0.0.0:0 LISTEN 4924 TCP 0.0.0.0:80 0.0.0.0:0 LISTEN 4 TCP 0.0.0.0:135 0.0.0.0:0 LISTEN 1384 TCP 0.0.0.0:445 0.0.0.0:0 LISTEN 4 TCP 0.0.0.0:623 0.0.0.0:0 LISTEN 10684 TCP 0.0.0.0:1972 0.0.0.0:0 LISTEN 8004 TCP 0.0.0.0:2179 0.0.0.0:0 LISTEN 2348 TCP 0.0.0.0:16992 0.0.0.0:0 LISTEN 10684 TCP 0.0.0.0:41773 0.0.0.0:0 LISTEN 11408 TCP 0.0.0.0:42773 0.0.0.0:0 LISTEN 11408 TCP 0.0.0.0:49664 0.0.0.0:0 LISTEN 848 TCP 0.0.0.0:49665 0.0.0.0:0 LISTEN 652 TCP 0.0.0.0:52493 0.0.0.0:0 LISTEN 11408 TCP 0.0.0.0:52773 0.0.0.0:0 LISTEN 9476 TCP 0.0.0.0:58091 0.0.0.0:0 LISTEN 5156 TCP 0.0.0.0:58816 0.0.0.0:0 LISTEN 964 TCP 127.0.0.1:2375 0.0.0.0:0 LISTEN 11408 TCP 127.0.0.1:5354 0.0.0.0:0 LISTEN 4852 TCP 127.0.0.1:5905 127.0.0.1:58786 ESTABLISHED 5156 TCP 127.0.0.1:5905 127.0.0.1:58787 ESTABLISHED 5156 TCP 127.0.0.1:5905 127.0.0.1:58788 ESTABLISHED 5156 In Ubuntu (container) I tried netstat -at4p for a similar result while connected to SMP :~/dev$ netstat -at4p Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.11:37033 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:52773 0.0.0.0:* LISTEN 476/httpd tcp 0 0 0.0.0.0:1972 0.0.0.0:* LISTEN 453/irisdb tcp 0 0 localhost:1972 localhost:44998 ESTABLISHED 1745/irisdb tcp 0 0 localhost:44998 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:1972 localhost:45014 ESTABLISHED 1746/irisdb tcp 0 0 localhost:1972 localhost:44992 ESTABLISHED 1744/irisdb tcp 0 0 localhost:44984 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:1972 localhost:44954 ESTABLISHED 1741/irisdb tcp 0 0 localhost:44992 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:44968 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:45014 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:44954 localhost:1972 ESTABLISHED 479/httpd tcp 0 0 localhost:1972 localhost:44984 ESTABLISHED 1743/irisdb tcp 0 0 localhost:1972 localhost:44968 ESTABLISHED 1742/irisdb :~/dev$ might look similar in other *UX
go to post Robert Cemper · Jan 24, 2024 $storage refers to the partition which holds only pointers into global buffers.while the content of the global goes only to global buffers andconsumes no permanent space in your partition.
go to post Robert Cemper · Jan 23, 2024 find the expected format in test where do get the date from ? if it's from IRIS functions $ZDATE() or $ZDATEH() convert it in the required format
go to post Robert Cemper · Jan 23, 2024 "TO_DATE('12/15/2023','MM/DD/YYYY')" is an SQL function call not a valuecould you try straight ODBC format "2023-12-15" ? Converting and using $H date format might be a different option
go to post Robert Cemper · Jan 23, 2024 eventually terminal in *UX may end just with $c(10)could you try to append some blank + semicolon ? :alias enablebi do EnableDeepSee^%SYS.cspServer("/csp/"_$zcvt($namespace,"L")) ; You seem to lose the last character
go to post Robert Cemper · Jan 23, 2024 I agree with @Brett Saviano:$$$ ...refers to some #define ... and is a compiler directive I tried: USER>:alias wi write "/csp/"_$zcvt($namespace,"L") USER>:wi write "/csp/"_$zcvt($namespace,"L") /csp/user USER>:alias wi1 write "/csp/"_$$$LOWER($namespace) USER>:wi1 write "/csp/"_$$$LOWER($namespace) WRITE "/csp/"_$$$LOWER($namespace) ^ <SYNTAX> USER>
go to post Robert Cemper · Jan 22, 2024 my personal preference goes to %GSIZE. The best match between CONSUMED and ALLOCATED size is found if your Global is "filled" total sequentially by a $Q() loop. And even then with a big string, you may force unexpected block splits. The situation changes if you fill your globals by subscript levels. This may cause a cascade of block splits and result in rater unattractive packing percentages ALLOCATED Size by Subscript might be of interest for an individual Subscript. Though adding them up doesn't reflect the total size It's like cutting a cake to 12 people and then counting the heads that had some cake. to reduce the space consumption of your globals I rather suggest to use ##Class(%GlobalEdit).GloabelCompact() to eliminate the effects of random inserts and growth inside a global tree.
go to post Robert Cemper · Jan 20, 2024 my guess by following docs USER>:alias pp do ##class(%ASQ.SetUtils).pp("$1")
go to post Robert Cemper · Jan 19, 2024 from my local Class docs: GetGlobalSizeBySubscriptThis method will return the size of a global based on the number of database blocks the global resides in. so you get blocks * blocksize ===> ALLOCATED sizeDepending on Packing as %GSIZE shows The difference might be significant Summary by Subscript will most likely show higher values as a pointer blockor even a data block (eg. with 8kb) may contain more than a single subscriptdepending on the Global structure.Take the default top subscript (aka. IDKEY) for Caché classes (Integer, >0) as an example
go to post Robert Cemper · Jan 19, 2024 tSC is mostly a %Status objectwith enough experience Zwrite tells you all you want and need to know$SYSTEM.Status.DisplayError(tSC) is easier read. a matter of comfort
go to post Robert Cemper · Jan 19, 2024 ChatGPT is just stupid and has no idea of IRIS / CachéA TABLE will by default never have the same name as the GLOBAL that stores the content>>>> HS.IHEX.RecordHistory and the global ^HS.IHEX.RecordHistory <<<<<HS.IHEX.RecordHistory is definitely not a handcrafted table.
go to post Robert Cemper · Jan 19, 2024 Thanks for the recognitions! 😀🖐It's a very strong motivation to be productive.Often to distract from personal struggles.Many thanks to the DX+OEX+GM team for their help! 👏 🌸🌼🌹🌻💐
go to post Robert Cemper · Jan 19, 2024 Hi @Daniel Aguilar for every DB you have a default collation that is tied to DB:you can see it in SMP System > Configuration > Local Databases > Database Properties this is the standard.If the collation of your source server is Spanish, German, Fench, , .... the DB may have used this national collation as default.On your target serve you need to have this collation to be installed.in SMP System > Configuration > Locale Definitions you see what is installed on your Caché instance You may need to add the missing collation table to your Caché instance:
go to post Robert Cemper · Jan 16, 2024 in the previous screenshot you see the namespace as a blue linkand the names of the DB in the yellow highlighted
go to post Robert Cemper · Jan 15, 2024 iristerm does NOT support ssh you need to run ( + install ?) a SSH service in your Linux SUSE 15 VM next, you connect from Win10 over any SSH terminal client (e.g. Putty, ...) to your SuSe VM console command line there you can run iris session ........... (the Linux equivalent of iristerm) Just as described in your question
go to post Robert Cemper · Jan 12, 2024 check if the date object var d=new Date();is inside your routine or at least globally defined