Closed (fixed)
Project:
Web service client
Version:
7.x-1.x-dev
Component:
Code
Priority:
Major
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
2 Sep 2011 at 07:23 UTC
Updated:
6 Jul 2012 at 18:11 UTC
Jump to comment: Most recent file
Comments
Comment #1
klausiI see, so probably we should change it to size = medium (mediumtext, 16 MB on mysql, ought to be enough for anybody) according to http://drupal.org/node/159605
We need to change that in wsclient_schema() and add an update function wsclient_update_7101() that alters the table. Care to roll a patch?
Comment #2
funkeyrandy commentedsure ill hook up a patch when i get a minute
Comment #3
Darren Shelley commentedCompletely agree with funkeyrandy.
I am integrating drupal with a thirdparty subscription fulfillment system which has over 280 methods and over 900 data types and believe wsclient_service.operations needs to be expanded to be more accomodating too.
If you beat me to a patch funkeyrandy please also increase the size of that column.
I would contemplate moving away from serialised columns to having a wsclient_service_operations and wsclient_service_datatypes table.
Klausi,
what is the vision for wsclient?
it seems absolutely awesome for small webservices.
Is there any reason my usecase would be too large? Or do you feel I should be able to successfully use wsclient for an integration of the scale highlighted above.
Comment #4
funkeyrandy commentedalso...
in addition to the table issue, im having an issue with null values being read incorrectly...best error i could find was:
SoapFault: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object. at service.WebAPI.GetPerformancesCommand.Execute() at service.WebAPI.service.GetPerformancesEx3(String sWebSessionId, String sStartDate, String sEndDate, Int16 iVenueID, Int16 iModeOfSale, Int32 iBusinessUnit, String sSortString, String sKeywords, String cKeywordAndOrStatement, String sArtistLastName, String sFullText, String sFullTextType, String sContentType, String sPerformanceIds, String sSeasonIds) --- End of inner exception stack trace --- in SoapClient->__call() (line 3 of /srv/www/site.org/public_html/modules/php/php.module(74) : eval()'d code).
im wondering if this is a table issue as well as any patch should include this :)
any ideas? this happened for a method that grabs about 300 events...the method has about 8 request elements, but only requires 3...i leave the rest blank in my rule action
Comment #5
klausi@Darren Shelly: I think it is not worth it to create separate tables for operations or datatypes because we do not query against them. They are just configuration items, we do not want to search them.
I think wsclient can work with larger services, too. However, I'm asking myself who on earth would create 280 operations in a single web service interface? Why not splitting it up to more reasonably sized services? (Must be a developer nightmare to maintain this)
Also the wsclient and Rules UIs would blow up, as each operation is mapped to an action in Rules and each operations is listed at the service description page.
Anyway, I'm willing to accept patches that increase the size of the DB columns + update functions.
Comment #6
lhugg commentedGreat module, but it looks like this patch was agreed to in September but never actually completed. I just loaded the current version, and had to troubleshoot this again until I landed on this document. Changing both fields to medium definitely fixes issues with larger SOAP WSDL files that throw huge errors d/t this problem. Can this be included in the next version?
Comment #7
klausiSure, just create a patch and I'll review it.
Comment #8
sanduhrsThe attached patch changes the schema definition and adds a hook_update_7102.
Changed fields include 'datatypes' as per initial report and 'operations' as per #3.
Please review.
Comment #9
klausiThanks! Committed.