go to post Jordan Everett · Apr 17, 2024 Yes, I did verify by doing an @@version in SSMS. I was able to figure it out though! For anyone else that comes upon an issue like this, it was a Namespace mapping issue on my end so I hope it helps.
go to post Jordan Everett · Aug 21, 2023 Thank you Jeffrey! This is most likely the cause since I can manually so a SFTP command enforcing their preferred cipher suite. With this being said, I'm assuming there is not an option in an Ensemble production to enforce a certain type of cypher suite?
go to post Jordan Everett · Mar 31, 2023 There definitely does seem to be one! I went ahead and set the parameters in the Method and changed my test system to match my production system. Thank you guys so much!
go to post Jordan Everett · Mar 31, 2023 On my production box it is a 0 and on my test system it is a 2.
go to post Jordan Everett · Mar 31, 2023 Here is a snippet of my arguments. I don't have them set to a default value which wouldn't be a bad practice to get into anyways. Method Encrypt(pDirectory As %String, pDelete As %Boolean, pLog As %Boolean) As %Status
go to post Jordan Everett · Mar 21, 2023 That worked! Thank you Jeffrey! It ended up being a Web Application configuration issue. I had a web application for the namespace as /csp/healthshare/{namespace} but not for /csp/{namespace}.
go to post Jordan Everett · Mar 21, 2023 Thank you both! I think both have there own uses. I will make sure to use both of these methods in the future.
go to post Jordan Everett · Jan 5, 2023 I figured it out! It turned out to be a SSL/TLS misconfiguration between my gateway and my server.
go to post Jordan Everett · Jan 4, 2023 Yes I do. I have all three extensions installed. My issue only seems to happen whenever I'm trying to go through my CSP gateway. If I connect directly to the server, then it works.
go to post Jordan Everett · Jan 4, 2023 Yes I can. Here is the log from when I connect to my CSP gateway (HTTPS): 5: ^CacheTemp.ISC.Atelier("debug",20592) = 1 6: ^CacheTemp.ISC.Atelier("debug",20592,1,0) = 1 7: ^CacheTemp.ISC.Atelier("debug",20592,1,1) = "Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""20592"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>" Here is when I do it when I connect directly to the server through port 57772: 8: ^CacheTemp.ISC.Atelier("debug",21036) = 1 9: ^CacheTemp.ISC.Atelier("debug",21036,1,0) = 77 10: ^CacheTemp.ISC.Atelier("debug",21036,1,1) = "Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""21036"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>" 11: ^CacheTemp.ISC.Atelier("debug",21036,1,2) = "Received:feature_set -i 1 -n max_data -v 8192" 12: ^CacheTemp.ISC.Atelier("debug",21036,1,3) = "Calling state feature_set" 13: ^CacheTemp.ISC.Atelier("debug",21036,1,4) = "Event:feature_set|<response command='feature_set' feature='max_data' success='1' transaction_id='1'/>" 14: ^CacheTemp.ISC.Atelier("debug",21036,1,5) = "Received:feature_set -i 2 -n max_children -v 32" 15: ^CacheTemp.ISC.Atelier("debug",21036,1,6) = "Calling state feature_set" 16: ^CacheTemp.ISC.Atelier("debug",21036,1,7) = "Event:feature_set|<response command='feature_set' feature='max_children' success='1' transaction_id='2'/>" 17: ^CacheTemp.ISC.Atelier("debug",21036,1,8) = "Received:feature_set -i 3 -n max_depth -v 2" 18: ^CacheTemp.ISC.Atelier("debug",21036,1,9) = "Calling state feature_set" 19: ^CacheTemp.ISC.Atelier("debug",21036,1,10) = "Event:feature_set|<response command='feature_set' feature='max_depth' success='1' transaction_id='3'/>" 20: ^CacheTemp.ISC.Atelier("debug",21036,1,11) = "Received:feature_set -i 4 -n notify_ok -v 1" 21: ^CacheTemp.ISC.Atelier("debug",21036,1,12) = "Calling state feature_set" 22: ^CacheTemp.ISC.Atelier("debug",21036,1,13) = "Event:feature_set|<response command='feature_set' feature='notify_ok' success='1' transaction_id='4'/>" 23: ^CacheTemp.ISC.Atelier("debug",21036,1,14) = "Received:feature_set -i 5 -n debug_target -v_base64 VEFMOiMjY2xhc3MoQ05IU0EuUlBNUy5IZWxsb1dvcmxkKS5IZWxsbygp" 24: ^CacheTemp.ISC.Atelier("debug",21036,1,15) = "Calling state feature_set" 25: ^CacheTemp.ISC.Atelier("debug",21036,1,16) = "Launching: ##class(CNHSA.RPMS.HelloWorld).Hello()" 26: ^CacheTemp.ISC.Atelier("debug",21036,1,17) = "PID 21004" 27: ^CacheTemp.ISC.Atelier("debug",21036,1,18) = "Debug Device Name:|TCP|59094" 28: ^CacheTemp.ISC.Atelier("debug",21036,1,19) = "Event:feature_set|<response command='feature_set' feature='debug_target' success='1' transaction_id='5'/>" 29: ^CacheTemp.ISC.Atelier("debug",21036,1,20) = "Received:breakpoint_list -i 6" 30: ^CacheTemp.ISC.Atelier("debug",21036,1,21) = "Calling state breakpoint_list" 31: ^CacheTemp.ISC.Atelier("debug",21036,1,22) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='6'></response>" 32: ^CacheTemp.ISC.Atelier("debug",21036,1,23) = "Received:breakpoint_list -i 7" 33: ^CacheTemp.ISC.Atelier("debug",21036,1,24) = "Calling state breakpoint_list" 34: ^CacheTemp.ISC.Atelier("debug",21036,1,25) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='7'></response>" 35: ^CacheTemp.ISC.Atelier("debug",21036,1,26) = "Received:breakpoint_list -i 8" 36: ^CacheTemp.ISC.Atelier("debug",21036,1,27) = "Calling state breakpoint_list" 37: ^CacheTemp.ISC.Atelier("debug",21036,1,28) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='8'></response>" 38: ^CacheTemp.ISC.Atelier("debug",21036,1,29) = "Received:breakpoint_set -i 9 -t line -s enabled -f dbgp://|TAL|CNHSA.RPMS.HelloWorld.cls -m Hello -n 2" 39: ^CacheTemp.ISC.Atelier("debug",21036,1,30) = "Calling state breakpoint_set" 40: ^CacheTemp.ISC.Atelier("debug",21036,1,31) = "mapping: TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2 -> CNHSA.RPMS.HelloWorld.1:7" 41: ^CacheTemp.ISC.Atelier("debug",21036,1,32) = "Setting BP" 42: ^CacheTemp.ISC.Atelier("debug",21036,1,33) = "IsStopped" 43: ^CacheTemp.ISC.Atelier("debug",21036,1,34) = "Location zDebugStub+27:%Debugger.System.1:0:0:0:0:6:0:0:0:0:0:TAL" 44: ^CacheTemp.ISC.Atelier("debug",21036,1,35) = "Stack 3^zDebugStub+27^%Debugger.System.1" 45: ^CacheTemp.ISC.Atelier("debug",21036,1,36) = "BP enabled:CNHSA.RPMS.HelloWorld.1(7)::0" 46: ^CacheTemp.ISC.Atelier("debug",21036,1,37) = "Event:breakpoint_set|<response command='breakpoint_set' transaction_id='9' state='enabled' id='1'/>" 47: ^CacheTemp.ISC.Atelier("debug",21036,1,38) = "Received:breakpoint_set -i 10 -t line -s enabled -f dbgp://|TAL|CNHSA.RPMS.HelloWorld.cls -m Hello -n 2" 48: ^CacheTemp.ISC.Atelier("debug",21036,1,39) = "Calling state breakpoint_set" 49: ^CacheTemp.ISC.Atelier("debug",21036,1,40) = "mapping: TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2 -> CNHSA.RPMS.HelloWorld.1:7" 50: ^CacheTemp.ISC.Atelier("debug",21036,1,41) = "Setting BP" 51: ^CacheTemp.ISC.Atelier("debug",21036,1,42) = "IsStopped" 52: ^CacheTemp.ISC.Atelier("debug",21036,1,43) = "Location zDebugStub+27:%Debugger.System.1:0:0:0:0:6:0:0:0:0:0:TAL" 53: ^CacheTemp.ISC.Atelier("debug",21036,1,44) = "Stack 3^zDebugStub+27^%Debugger.System.1" 54: ^CacheTemp.ISC.Atelier("debug",21036,1,45) = "BP enabled:CNHSA.RPMS.HelloWorld.1(7)::0" 55: ^CacheTemp.ISC.Atelier("debug",21036,1,46) = "Event:breakpoint_set|<response command='breakpoint_set' transaction_id='10' state='enabled' id='2'/>" 56: ^CacheTemp.ISC.Atelier("debug",21036,1,47) = "Received:run -i 11" 57: ^CacheTemp.ISC.Atelier("debug",21036,1,48) = "Calling state run" 58: ^CacheTemp.ISC.Atelier("debug",21036,1,49) = "IsStopped" 59: ^CacheTemp.ISC.Atelier("debug",21036,1,50) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL" 60: ^CacheTemp.ISC.Atelier("debug",21036,1,51) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1" 61: ^CacheTemp.ISC.Atelier("debug",21036,1,52) = "Hit A BreakPoint" 62: ^CacheTemp.ISC.Atelier("debug",21036,1,53) = "Event:status|<response command='run' status='break' reason='ok' transaction_id='11'/>" 63: ^CacheTemp.ISC.Atelier("debug",21036,1,54) = "Received:stack_get -i 12" 64: ^CacheTemp.ISC.Atelier("debug",21036,1,55) = "Calling state stack_get" 65: ^CacheTemp.ISC.Atelier("debug",21036,1,56) = "stack: 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1" 66: ^CacheTemp.ISC.Atelier("debug",21036,1,57) = "mapping:zHello+2^CNHSA.RPMS.HelloWorld.1 -> TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2" 67: ^CacheTemp.ISC.Atelier("debug",21036,1,58) = "Event:stack_get|<response command='stack_get' transaction_id='12'><stack level='1' type='file' filename='dbgp://%7CTAL%7CCNHSA.RPMS.HelloWorld.cls' method='Hello' methodoffset='2' lineno='2'/></response>" 68: ^CacheTemp.ISC.Atelier("debug",21036,1,59) = "Received:context_names -i 13 -d 1" 69: ^CacheTemp.ISC.Atelier("debug",21036,1,60) = "Calling state context_names" 70: ^CacheTemp.ISC.Atelier("debug",21036,1,61) = "IsStopped" 71: ^CacheTemp.ISC.Atelier("debug",21036,1,62) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL" 72: ^CacheTemp.ISC.Atelier("debug",21036,1,63) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1" 73: ^CacheTemp.ISC.Atelier("debug",21036,1,64) = "IsStopped" 74: ^CacheTemp.ISC.Atelier("debug",21036,1,65) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL" 75: ^CacheTemp.ISC.Atelier("debug",21036,1,66) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1" 76: ^CacheTemp.ISC.Atelier("debug",21036,1,67) = "Event:context_names|<response command='context_names' transaction_id='13'><context name='Local' id='0'/><context name='Global' id='1'/></response>" 77: ^CacheTemp.ISC.Atelier("debug",21036,1,68) = "Received:context_get -i 14 -d 1 -c 0" 78: ^CacheTemp.ISC.Atelier("debug",21036,1,69) = "Calling state context_get" 79: ^CacheTemp.ISC.Atelier("debug",21036,1,70) = "IsStopped" 80: ^CacheTemp.ISC.Atelier("debug",21036,1,71) = "StackLevel IDE->Cache:1->5" 81: ^CacheTemp.ISC.Atelier("debug",21036,1,72) = "StackVars lev=5" 82: ^CacheTemp.ISC.Atelier("debug",21036,1,73) = "IsStopped" 83: ^CacheTemp.ISC.Atelier("debug",21036,1,74) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL" 84: ^CacheTemp.ISC.Atelier("debug",21036,1,75) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1" 85: ^CacheTemp.ISC.Atelier("debug",21036,1,76) = "Context:0:~var:HELLO WORLD" 86: ^CacheTemp.ISC.Atelier("debug",21036,1,77) = "Event:context_get|<response command='context_get' context='0' transaction_id='14'><property name='var' fullname='var' type='string' constant='0' children='0' size='11' numchildren='0' encoding='none'>HELLO WORLD</property></response>"
go to post Jordan Everett · Jan 4, 2023 I have confirmed that. It even shows that it is upgrading to a websocket connection in the HTTP trace.
go to post Jordan Everett · Jan 3, 2023 I believe I do. If I didn't, I wouldn't be able to query anything using Visual Studio Code correct?
go to post Jordan Everett · Jan 3, 2023 Alright, I figured out that the problem is due to my CSP Web Gateway. I switched my server connection to go directly to the server through the private apache web port. It worked without any issues! Does anyone have any guidance on what application access I'm probably missing on my CSP Gateway?
go to post Jordan Everett · Jan 3, 2023 Hey @Raj Singh, It was very helpful and a wonderful source of information, but I'm still not able to debug anything through VSCode. It seems like it will attach or launch but then will never hit my breakpoint and allow me to actually debug the process
go to post Jordan Everett · Jan 3, 2023 I have followed your post and unfortunately haven't had any luck. It seems to get put into the Call Stack but nothing happens after that. Here is an image of what it currently looks like on my debug: I also turned on debugging and this is the information I got in the globals: ^CacheTemp.ISC.Atelier("debug",21088) = 1 33: ^CacheTemp.ISC.Atelier("debug",21088,1,0) = 5 34: ^CacheTemp.ISC.Atelier("debug",21088,1,1) = "Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""21088"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>" 35: ^CacheTemp.ISC.Atelier("debug",21088,1,2) = "Received:feature_get -i 1 -n stop" 36: ^CacheTemp.ISC.Atelier("debug",21088,1,3) = "Calling state feature_get" 37: ^CacheTemp.ISC.Atelier("debug",21088,1,4) = "Event:feature_get|<response command='feature_get' feature='stop' supported='1' transaction_id='1'></response>" 38: ^CacheTemp.ISC.Atelier("debug",21088,1,5) = "OnClose"
go to post Jordan Everett · Aug 9, 2022 Yea I was wondering if I can maybe format in a bit of a nicer way to where it'd be readable kind of like this: set tEmail = ##class(%Net.MailMessage).%New() set tEmail.IsHTML=1 set html = &html< <html> <body> <b>Hello, World!</b> </body> </html> > set tSC = tEmail.TextData.Write(html) set tSC=..Adapater.SendMail(tEmail) I know you can't assign embedded HTML to a variable, but I didn't know if there was a different way of doing it. I think I did find a work around however by using SendGrid and just doing a JSON post to SendGrid that will send my email through the use of a template, but I guess it is just moreso for curiosity sakes now.
go to post Jordan Everett · Apr 15, 2020 Thank you for the reply it helped me learn more about public and private variable in intersystems. I decided to go with passing it as a parameter as the easiest route.