go to post David Underhill · Jul 6, 2020 All the current suggestions are possible, however, usually if it is a Cache/Ensemble start issue the exe will not crash but will report the database failed to start. In this case the error is that the EXE itself crashed and this is likely why there is nothing in alerts.log or cconsole.log as it did not progress that far. This implies either an issue with the EXE or with the config details it will read from the registry. If you check Windows Event Viewer there may be more information there to help resolve. Should you be unable to resolve then the simplest option would be to install a fresh copy of Cache/Ensemble, first try the repair option with the same version then try upgrading with a newer version, over the top. This should not lose anything and will either highlight an installation issue or rebuild the problem configuration. If that fails, keep a copy of the database files, wipe the existing installation and then rebuild, extreme but it depends on how long you want to spend trying to find the problem.
go to post David Underhill · Jul 6, 2020 This is bringing back some nightmares memories, good old days of DSM, MSM, MaxiMumps, ISM, showing my age now.
go to post David Underhill · Jul 6, 2020 Unfortunately Gartner won't accept your review if you work for a company that is linked to Intersystems in any way such as a VAR.
go to post David Underhill · May 20, 2020 Hello Alexander, I did eventually find that, we don't use Ensemble and I had expected some central classes but they are only available in an Ensemble enabled namespace. It does look like the EnsLib.FTP.InboundAdaptor eventually breaks down the strings from LIST using expressions defined in OnInit based on the remote OS which I assume they get using SYST. I still don't understand why this isn't part of %Net.FtpSession as I cannot use this without Ensemble and Ensemble namespaces have their own complications, such as 2 extra databases, we currently avoid. I think I will raise a WRC to request this. Thanks for the help.
go to post David Underhill · Apr 6, 2020 To get the remote filesize over SFTP you would use the FileInfo method in %Net.SSH.SFTP. To get the stream size you would use the SizeGet method on the stream. However, be aware that during the transfer, depending on OS and methods used there may be translations of line terminators which would affect file size (often called ASCII mode). This is not very common in SFTP, unlike standard FTP, but can still occur. Also, I have found in the past that on a non-file stream the SizeGet is not always the same as the final file size when saved but that might just be my findings in special cases.
go to post David Underhill · Jan 15, 2020 Combined with the other answer this is working now, seems you MUST prefix a custom header value with an X.
go to post David Underhill · Jan 15, 2020 Ok this was actually very helpful in conjunction with the previous debug advice as adding X to create x-application-id now sees the value as available and I can retrieve it as expected. Thank you both for the help.
go to post David Underhill · Jan 15, 2020 That was very helpfull as it shows the value is not available, it does not appear in the list of CGI variables. However, both the clients log and the CSP Gateway trace show the request had this in Client record from SoapUI CSP trace CGI Variables from the details provided by the suggested output is attached as a PDF <update> attaching is failing unfortunately. I am obviously doing something wrong so any pointers would be helpfull
go to post David Underhill · Jan 15, 2020 This is one of the things I have tried but it is always undefined wherever I place this code.
go to post David Underhill · Jan 10, 2020 It is interesting that you are asking this as we have tried, for well over a year, via various mediums, at various levels within Intersystems, to get an answer as to the future of IDE's given that previous announcements and responses from WRC state that both Atelier and Studio are end-of-life. We have never received a response even after Evgeny pinged such a request to John fried and others after some posts. Your statements seem to indicate that Studio is not end-of-life so it would be nice to have some clarification as even WRC are saying non-critical fixes or changes will not be done. You also indicate work being done on VSCode integration, again any details would be appreciated. The reason for wanting to know is that is difficult to commit to a particular toolset or plan changes to DevOps etc... if the future of the tools to be used is unknown, the actual answer and whether it is an individuals or companies preference is immaterial, it is simply that an answer is required but everyone has been reluctant for a long time now to commit to anything. Coming back to your questions, we use Studio with our own version control based on StudioHooks and some use of Serenji for debugging. We have tried Atelier but noone liked using it and we have worked in VSCode via Dmitry's plugin and have also tried the Serenji plugin both of which were generally a good experience but migration would require changes to development processes and version control. We are likely to move to a GIT based Version control and whether this is intergrated with Studio or VSCode will likely depend on Intersystems commitment to the IDE though I suspect there would be a preference to stick with Studio as it is familiar and has integration to Cube etc... though as we continue to do more Web based development in VSCode this may change.
go to post David Underhill · Dec 18, 2019 You can also do allot of this using %CHARWIN rather than native escape codes https://cedocs.intersystems.com/latest/csp/docbook/pdfs/pdfs/GCHW.pdf
go to post David Underhill · Nov 20, 2019 As you are talking about locks and transactions, and as others have noted, you can nest transactions it might be worth warning people about locks inside transactions and the fact that the unlock will not take place until the tcommit. These can cause issues, especially where this is a method using transactions and locks which calls another that does the same.
go to post David Underhill · Nov 8, 2019 Does the instance on the test server run with the same credentials as the production server, it could be permissions, also is the test server the same OS as some server versions are more strict if this is a shared printer on another machine.
go to post David Underhill · Nov 8, 2019 As this is a printer I assume X is "|PRN|printername_or_UNC" ? If you can't see it open already then a failure to open can also indicate a problem with the printer. We commonly get sites log an issue and it turns out they have changed UNC path/permissions, or the printer is offline/showing an error, and it is this which is the issue.
go to post David Underhill · Nov 7, 2019 Could you tell us the OS and open command you are using, it might help with suggestions.
go to post David Underhill · Nov 6, 2019 Open devices for a process can be seen in the Processes section of the portal. The initial process list shows the principal or current device and in the individual process page it shows all open devices, this can also be found using the %SYS.ProcessQuery OpenDevices method so you could write code that goes through all processes checking. What these show may depend on how you open the device in the first place.
go to post David Underhill · Nov 1, 2019 I know Jeff and Raj are busy people but there never was a response. Intersystems simply need to commit to an answer as at this point the actual answer isn't really important anymore, just getting an answer so commitments to any change can be made.
go to post David Underhill · Oct 28, 2019 That looks better than the WRC supplied code when I fist noticed the binary rather than hex values returned. set text = "message digest" set md5hash = $system.Encryption.MD5Hash(text) set md5HashHex = "" for i=1:1:$Length(md5hash) { set md5HashHex = md5HashHex _ $Zhex($Ascii($Extract(md5hash,i))) } write md5HashHex, !
go to post David Underhill · Oct 28, 2019 I am in the same position as you, only selectively using full commands or function names, being too much in the habit of MUMPs abbrevations. Like you though I tend to extend when iterating or using something less usual in the code, I have also found curly braces to be much better for readability than the old block structure. I also agree that I find it faster to read and write abbrevated code for things like sets and do's and especially for functions such as $p and $g. Hopefully I can get into the habit of less abreviation as I do notice the new programmers finding this harder. Probably the biggest habit I have broken is also shown in the bad examples given and shows how long I have been using MUMPS, yes it's entering everything in UPPERCASE. I finally use camel case and also more meaningful/longer routine and variable names.
go to post David Underhill · Oct 22, 2019 Thanks for adding that, in the case of a preview it might be worth adding this to the "Notes" section to save cross referencing with release notifications or the usual downloads page.