“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
— Brian Kernighan
Last time, we finished up with my rudimentary testing of the latest version of this project. I can still do a lot more testing on my own, but what I really need is for some person or group who is not me to try to give it all a go. In order for that to be an option, I need to create new Update Sets for the current version and post them out here so that other kind souls can download them and attempt to see if they can make it work and/or find out where all of the problems lie. I did not get much feedback the last time that I tried this, but today is a new day, so maybe there is somebody out there now who wouldn’t mind helping a guy out.
This is by no means a final version of this effort. There are still a number of things that I would like to do that have not been attempted as yet, and there are probably more that I have not yet even considered. But all of the major functions are there now, and I just did quite a bit of major refactoring, so now is a good time to roll out a new version and let folks take it out for a spin. Outside feedback is always helpful, and is always appreciated.
Before you install the Scoped Application Update Set, you need to install the latest version of the snh-form-field tag, which you can find here. Or better yet, you can do what I did and go out and grab the latest SNH Data Table Widgets, which includes everything that you need to support snh-form-fields. Either way, you will need to take care of that before you install these app artifacts in the following order:
When I installed the app on my new San Diego PDI, I got a handful of Preview errors about some missing Flow Designer components, but I just accepted all updates and went ahead and did the Commit, and everything seemed to be fine. It may just be that the app was built on Rome and the installation was done on San Diego, and there are some differences there, but I would be interested in hearing if anyone else had any similar issues with the install.
Once you have everything installed, the next step is to go through the set-up process. The first thing that you will want to do is to create a Host instance. Once the Host has been established, the software can be installed on other instances and those instances can be set up as Client instances by identifying the new Host instance during the set-up process. Instructions for the Set-up process, the Application Publishing process, and the Application Installation process can be found here.
The best test will involve three or more instances, and the more the merrier. You can test the set-up process with a single instance, but until you have at least two instances involved, you can’t really test much of the purpose of the app, which is to share applications between instances. Three or more is obviously better, as that is the only way to test an application being shared by one Client and making its way to another Client via the Host. But any level of testing is useful, so please feel free to pull it all down, install it, and try what you can under any circumstances. All feedback from any experience is always welcome in the Comments. Thanks in advance for your assistance. Hopefully, we will get a little feedback this time and we can take a look at it next time out.
Joe Blogs says:
Hi,
I am working on importing the collaboration app on my two instances and will hopefully enlist another co-worker to test the full love triangle.
I will keep you updated on progress.
Thanks
Joe Blogs says:
I was able to set up the store on my two instances, having encountered differing numbers of errors, presumably because one of the instances had the previous version. (197 vs. 20) I accepted the remote update and all went smoothly after that. I have inquired with my co-worker and hopefully will hear back soon.
snhackery says:
Awesome! Thank you, sir. Love the feedback. Much appreciated!
Joe Blogs says:
So, we now have 3 pdi’s in the group and one of the clients has a test application defined. But we didn’t see a link to instructions on how to push or pull that app to another pdi. Also, the app only appears in the original client. Let us know how to proceed. If you want to set up a webex or teams meeting that is fine with us.
Thanks
snhackery says:
When you pull up the application in the My Company Applications section, you should see a link near the bottom of the page titled Publish to Collaboration Store. Clicking on that link should send the app to the Host, and then the Host should send it out to all of the other clients. Once it appears on any other instance, pulling up the version record should get you access to the Install button at the top of the version form. Clicking on that button should install the app on that instance. Thanks again for the feedback.
Joe Blogs says:
Ok, thanks for that info. After bringing up an app in the My Company Applications and clicking on Publish to Collaboration Store I noted the alert message, which had two progress lines:
Converting Update Set to XML
Updating the Application record
The second had a red X preceding it so something didn’t work. Here are the log entries:
ApplicationPublisher.processError: {
“phase”: 2,
“mbrAppId”: “7a11adff2f3011101ba25e492799b6d5”,
“appSysId”: “1aeeaae92f86d0901c43bed72799b6da”,
“updSetId”: “5385c94c2f8151101ba25e492799b676”,
“origAppId”: “7a11adff2f3011101ba25e492799b6d5”,
“isHost”: false,
“attachmentId”: “8a95cd802fc151101ba25e492799b6e1”
}
ApplicationPublisher.processError: Unrecognizable response from logo attachment copy: []
LARGE_PAYLOAD_CLEANER completed, no valid streaming_attachment table records found for deletion
CAProcessor :: Configuration Details {“sn_ci_analytics.ca.allow_broadcast”:”false”,”sn_ci_analytics.ca.app_record_sysid”:”879230a7730310108564b17afef6a7ae”,”sn_ci_analytics.ca.app_table_name”:”sn_ci_analytics_application”,”sn_ci_analytics.ca.batch_size”:”1000″,”sn_ci_analytics.ca.job_max_conversation_count”:”3000″,”sn_ci_analytics.ca.max_retry”:”3″,”sn_ci_analytics.ca.reason_max_length”:”1000″}
snhackery says:
Joe,
Thanks for the detailed info. That is very helpful. It looks like it died trying to copy the logo image from the application to the Collaboration Store repository. I am wondering if that application even has a logo image, and if not, maybe the problem is that is not properly set up to handle an app without a logo. If that is the case, you might try adding a logo image to the app and see if you get any further. It is not supposed to attempt to copy the logo image if there isn’t one, but that’s why we test these things, isn’t it? Thanks again for the feedback.
Joe Blogs says:
Today I deleted the entry in the Member Applications for one of the clients that I had entered manually. I then repeated the process of publishing the app from the My Company Applications page but I still got the same error. I am assuming that you are troubleshooting madly into the small hours of the night and we eagerly await your next missive.
Joe Blogs says:
Ah, somehow I missed your latest comment. I will attempt adding a logo.
Joe Blogs says:
The application in question has a logo image. I don’t know if it makes a difference but the member organization doesn’t have a logo but I doubt if that makes a difference.
snhackery says:
OK, if it has a logo image, then the problem is not the fact that it cannot handle an app without one. Do me a favor and remove the image and see if that gets you any further. If that works for some reason, then you might try putting it back or replacing it with some other image temporarily and see what that does. Great feedback, and thanks again for your assistance. Very much appreciated.
Joe Blogs says:
It didn’t work when I deleted the logo. When I replaced it with a different image it got as far as Sending the Application record to the Host instance. Presumably that failed because the host pdi is hibernating. I am now waking up the other two instances.
Joe Blogs says:
Ok, the publish process worked all the way through. I was able to see the application in the host instance under the client member. I opened the version link but when I attempted to install it on the host it produced the message: No Update Set XML file found attached to this version
The log has numerous entries like this:
GCF definition collection cache is null: java.lang.IllegalStateException: GCF definition collection cache is null: com.glide.usageanalytics.gcf.GCFStagingPublisher.processRecords(GCFStagingPublisher.java:76)
com.glide.usageanalytics.gcf.UABatchProcessor.processBatch(UABatchProcessor.java:34)
com.glide.usageanalytics.gcf.UABatchProcessor.finish(UABatchProcessor.java:41)
com.glide.usageanalytics.gcf.GCFStagingPublisher.close(GCFStagingPublisher.java:102)
com.glide.usageanalytics.UsageAnalyticsDB.persisAnalytics(UsageAnalyticsDB.java:256)
com.glide.usageanalytics.UsageAnalyticsDB.persistAll(UsageAnalyticsDB.java:334)
com.glide.usageanalytics.UsageAnalyticsDB.persistAll(UsageAnalyticsDB.java:321)
com.glide.usageanalytics.audit.UAAuditStatsPersistor.persistAuditStats(UAAuditStatsPersistor.java:32)
com.glide.usageanalytics.UsageAnalyticsAppPersistor.persistAll(UsageAnalyticsAppPersistor.java:222)
com.glide.usageanalytics.AUsageAnalyticsPersistJob.execute(AUsageAnalyticsPersistJob.java:35)
com.glide.usageanalytics.UsageAnalyticsAppPersistor.doExecute(UsageAnalyticsAppPersistor.java:162)
com.glide.usageanalytics.UsageAnalyticsAppPersistor.execute(UsageAnalyticsAppPersistor.java:149)
com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
snhackery says:
So, is there an Update Set XML file attached to the version record, and if so, when you download it and look at it, does it look like a valid Update Set?
Joe Blogs says:
The xml attachments are on the source version record but the only attachment in the host version is the logo.
snhackery says:
OK, thanks. That is obviously a problem. The logo should be attached to the application record and the Update Set XML file should be attached to the version record. If the logo image is attached to the version record, then something obviously got lost in translation. Thanks for the info.
Joe Blogs says:
Yes that is confirmed. The logo is attached to the version record.