HTTP Image Retriever not logging images
-
An HTTP Image retriever datasource with the datapoint set to log all data does not show any images and this error shows up in the logging console. this is on a mangoES.
ERROR 2016-02-04 20:44:58,856 (com.serotonin.m2m2.rt.maint.BackgroundProcessing$1.run:53) - Error in work item com.serotonin.ShouldNeverHappenException: Images are not supported at com.infiniteautomation.nosql.PointValueTimeSerializer.toByteArray(PointValueTimeSerializer.java:99) at com.infiniteautomation.nosql.PointValueTimeSerializer.toByteArray(PointValueTimeSerializer.java:25) at org.tinytsdb.impl.Series.write(Series.java:139) at org.tinytsdb.impl.TinyTSDBImpl.write(TinyTSDBImpl.java:258) at com.infiniteautomation.nosql.MangoNoSqlPointValueDao.savePointValueSync(MangoNoSqlPointValueDao.java:66) at com.serotonin.m2m2.rt.dataImage.PointValueCache.savePointValue(PointValueCache.java:92) at com.serotonin.m2m2.rt.dataImage.DataPointRT.savePointValue(DataPointRT.java:303) at com.serotonin.m2m2.rt.dataImage.DataPointRT.updatePointValue(DataPointRT.java:189) at com.serotonin.m2m2.http.rt.HttpImageDataSourceRT$ImageRetriever.executeImpl(HttpImageDataSourceRT.java:191) at com.serotonin.m2m2.http.rt.HttpImageDataSourceRT$ImageRetriever.execute(HttpImageDataSourceRT.java:145) at com.serotonin.m2m2.rt.maint.BackgroundProcessing$1.run(BackgroundProcessing.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
-
Hi Craig,
I have started a discussion about this issue. Mango has only ever offered to save the images to disk in my understanding, so the NoSQL dao shouldn't need to support them any differently than the SQL did. Is it possible to use MySQL or H2 currently?
-
Hi Phil,
the SQL database stored the point id and timestamp and the file was saved with the point id as the filename and saved to the filesystem. We had a build that saved the images in a YYYY/YYYY-mm-dd/ directory structure so we would have a folder for every day of the year with all of the images for all of the datapoints.
We had another patch that overlayed the date and time on the image, and some point names and values, so the images provided a visual record of a stream level.
I don't I understand the question about using MySQL or H2 currently. Mango system information shows the mangoES has a H2 database, which looks like a SQL database that has replaced derby. Are you suggesting that the image storage and retrieval functions will work if I remove the noSQL module?
Let us know what is the outcome of the discussion of this issue
Craig
-
Yes, not using the NoSQL module will help, because the NoSQL module tries to store all pointValues (including Image pointValues) but the support for images was never added. i believe using MySQL or H2 will solve the problem. It is a fairly simple thing to add the functionality from the SQL Point Value Dao to the NoSQL if that gets traction. We'll keep you posted.