1. Van Sederburg
  2. PowerBuilder
  3. Wednesday, 27 December 2017 21:05 PM UTC

I set up TFS for source control, following instructions here:

https://community.appeon.com/index.php/articles-blogs/tutorials-articles/2-powerbuilder/195-using-powerbuilder-2017-with-tfs-source-control

and it seems to work well as far as adding everything to source control, checking out files, etc. BUT when I try to check a file back in, it works for the first one, but any file after that fails with: "Nonspe4cific error performing scccheckin()"

If I close and restart Powerbuilder 2017, I can check in another file or even multiple files (at once), but after I've done one check in, the next attempt will fail until I restart Powerbuilder.

I've tried adding SccLogLevel=3 to the pb.ini file, but I don't get any more information. I also tried adding SccMultithread=0 to see if that would do anything, but no luck.

Any ideas what I should look for?  The checkin definitely "works", but only one shot. It's like the scc connection gets corruped or something after one checkin completes.

Thanks

Gene Kanten Accepted Answer Pending Moderation
  1. Saturday, 15 June 2019 04:47 AM UTC
  2. PowerBuilder
  3. # 1

I have the same issue. I found closing the workspace and reopening it worked too (quicker than restarting PowerBuilder). Were you able to resolve this?

Comment
There are no comments made yet.
Gene Kanten Accepted Answer Pending Moderation
  1. Monday, 13 May 2019 18:06 PM UTC
  2. PowerBuilder
  3. # 2

I am having this same issue.

Using PowerBuilder 2017 R3, Windows 10.

I'm using the Microsoft Team Foundation Server MSSCCI Provider.

First checkin works, susbsequent ones fail.

Were you able to resolve this issue?

Also seems to only work for the first 25 objects.

It seems like a parameter is not being set. I get a Parameter is not valid error message box.

 

Comment
  1. Gene Kanten
  2. Thursday, 13 June 2019 20:32 PM UTC
We are using MS Team Foundation Server MSSCCI Provider 12.1.00402.00

and Team Explorer for MS Visual Studio 2013 12.0.21005.13
  1. Helpful
There are no comments made yet.
Govinda Lopez @Appeon Accepted Answer Pending Moderation
  1. Thursday, 28 December 2017 00:56 AM UTC
  2. PowerBuilder
  3. # 3

Hi Van Sederburg,

 

Can you help us with the version of TFS you are using? Also, have tried replying to the post you mentioned?

 

 

Regards,

Comment
  1. Van Sederburg
  2. Friday, 29 December 2017 20:17 PM UTC
PB2017 Build 1681

Built Sep 21 2017 21:23:21



WIndows 10 Pro v1709

OS Build 16299.125

  1. Helpful
  1. Govinda Lopez @Appeon
  2. Friday, 29 December 2017 22:47 PM UTC
Hi Van Sedergurg,



 



Have you checked if your local files are not saved as "read only"? There are a number of steps you can perform to troubleshoot scc problems. They are, firstly, related to PowerBuilder's SCC API. If following these steps you still have the error, then I would suggest you looking into the SCC server itself.



 



The steps are in the PowerBuilder Help files. You can find them by navigating to: 



 







 



Initialization settings that affect source control



Settings for managing source control operations



In addition to the SccMaxArraySize described in Fine-tuning performance for batched source control requests, and SccMultiCheckout described in Multiple user checkout, there are other PB.INI parameters you can add that affect source control operations.



Table 3-6: PB.INI settings for source control purposes











PB.INI parameter





Permitted values





Description









SccCOImport









full





inc





outofdate





full outofdate





inc outofdate









During checkout the default behavior is to import and compile only the objects being checked out. You can make the compile more inclusive by adding this parameter to the initialization file and assigning either the “full” or “inc” value to it. You can use the “outofdate” value to avoid unnecessary import and compile operations.



For a fuller description of the permitted values, see Table 3-7.









SccUCImport









full





inc





outofdate





full outofdate





inc outofdate









When you revert a checkout, the default behavior is to refresh and compile only those objects in the local project path that were originally checked out. You can make the compile more inclusive by adding this parameter and assigning either the “full” or “inc” value to it. You can use the “outofdate” value to avoid unnecessary import and compile operations.



For the meaning of the permitted values, see Table 3-7.









SccGLImport









full





inc









When you issue a GetLatestVersion call, the default behavior is to refresh and compile only the objects in the request. You can make the compile more inclusive by adding this parameter and assigning a permitted value to it.



For the meaning of the permitted values, see Table 3-7.









SccRBImport









full





inc









When you issue a checkout, get latest version, or undo checkout call, images of the requested objects are exported to a temporary directory. When refreshed objects fail to compile, a dialog box asks whether you want to continue with or cancel the operation for all objects that fail to compile.



If you select Cancel, the older images for the objects that fail to compile are reimported from the temporary directory to the local project path. Whenever object images are rolled back in this manner, you can force an incremental or full compilation of the entire target by adding the SccRBImport parameter and assigning a permitted value to it.



For the meaning of the permitted values, see Table 3-7.









SccMaxArraySize





nn (positive integer)





Allows you to override the 25-file limit on file names sent to the source control server in a batched request. For more information, see Fine-tuning performance for batched source control requests.









SccCaseSensitive





0 or 1 (1 is default for Telelogic Synergy, 0 for all other SCC providers)





By default, PowerBuilder uses a case sensitivity setting that is compatible with the SCC provider you are using. You can override the default setting by adding this parameter and assigning a different value. A value of 1 means that object names checked into source control are case sensitive, and a value of 0 means that they are not case sensitive.









SccMultiCheckout





0 or 1 (1 is default for SCC providers that support multiuser checkouts, 0 for providers that do not support multiuser checkout)





If your SCC provider permits multiple user checkouts, you can use this initialization parameter to ensure that an item checked out by a user is exclusively reserved for that user until the object is checked back in. For more information, see Multiple user checkout.









SccCheckoutNoLock





0 or 1 (1 is default for MKS Source Integrity, 0 for all other providers





Based on known defaults for the SCC provider you are using, PowerBuilder determines whether locks are added in source control to objects that you check out. You can override the default setting for some SCC providers by adding this parameter and assigning a different value. If the SCC provider permits checkouts of objects without locking them, a value of 1 means that no locks are added for objects that you check out. A value of 0 makes sure that locks are added for these objects.











Permitted values for Import parameters



Table 3-7 describes the effect of permitted values for the SccCOImport, SccUCImport, SccGLImport, and SccRBImport parameters in the PB.INI initialization file. You can also add an import parameter without assigning it a value. This has the same effect as the default behavior during checkout, undo checkout, get latest version, and rollback operations.



Table 3-7: Permitted values for import parameters in the PB.INI file











Permitted value





Description









full





Forces a full build of the target after the requested source control operation is completed.



For SccCOImport and SccUCImport, you can combine the “full” value with the “outofdate” value to reduce the number of objects imported from the local project path to the target PBLs before a full rebuild. You combine the values by separating them with a single space, as shown in the following example: SccUCImport= full outofdate.



For SccRBImport, if rollback fails for any reason, the build operation is not performed.









inc





Examines the entire target for additional objects that are descendants of objects or have dependencies on the objects that are included in the initial source control request. The dependent objects are compiled and regenerated as part of an incremental build, along with the objects in the initial request.



For SccCOImport and SccUCImport, you can combine the “inc” value with the “outofdate” value to reduce the number of objects imported from the local project path to the target PBLs before an incremental rebuild. You combine the values by separating them with a single space, as shown in the following example: SccUCImport= inc outofdate.



For SccRBImport, if rollback fails for any reason, the build operation is not performed.









outofdate





Compares the exported object images to the source code in target PBLs after an initial checkout or undo checkout operation. If the code in the PBLs is identical to the object images, the object images are not imported. The source code for identical PBL objects is also not compiled unless you also assign “full” or “inc” to the SccCOImport or SccUCImport parameters.



The “outofdate” value is not available for the SccGLImport and SccRBImport parameters. Typically GetLatestVersion calls are made for objects that are assumed to be out of sync, in which case the out-of-date comparison is not expected to be useful. Also, object images that have been rolled back should always be reimported and compiled to assure the integrity of the target PBLs.











Settings for troubleshooting problems with source control



In addition to the initialization parameters that can help with managing source control operations, there are also parameters you can use to troubleshoot problems with source control. These parameters should not be used in normal operations. They should be used only for diagnosing a problem with source control. Table 3-8 describes these parameters.



Table 3-8: PB.INI settings for troubleshooting











PB.INI parameter





Permitted values





Description









SccExtensions





0 or 1 (1 is default)





Add this parameter and set it to 0 to disable SccQueryInfoEx calls when your source control provider supports this extension to the SCC API. You should do this either to







Measure performance differences between SccDiff and SccQueryInfoEx calls.





Test for incompatibilities between PowerBuilder clients and SCC provider DLL implementations.







For more information about SccQueryInfoEx calls, see Extension to the SCC API.









SccLogLevel





1 or 3 (1 is default)





Add this parameter and set it to 3 to enable more detailed tracing of SCC requests and the responses from the SCC provider. Increased tracing detail requires more file input and output, so this setting should be used only for diagnosing problems.









SccMultithread





0 or 1 (1 is default)





Add this parameter and set it to 0 to disable multithreading. Disabling multithreading can cause significant delays when first connecting to source control or when expanding a node in the PowerBuilder System Tree, so this setting should be used only to diagnose integration issues with a specific provider or to work around a known defect.









SccDiffStrategy





nn (positive integer)





Depending on the capabilities of an SCC provider, different strategies are used for determining whether a PBL object is out of sync with object files in the SCC repository. By default, a comparison is made by version number if the SCCQueryInfoEx API extension is supported and the SccExtensions parameter is not set to 0. Otherwise, a provider-specific backup strategy is used for the object comparisons.



You can override the default comparison strategy by adding the SccDiffStrategy parameter to the initialization file and assigning an appropriate value to it. For more information, see Comparison strategies.











Comparison strategies



By default, PowerBuilder uses the SCCQueryInfoEx API extension command to compare objects in target PBLs with object files in a source control repository.



For more information on the SCCQueryInfoEx API extension command, see Extension to the SCC API.



A backup strategy is set for SCC providers that do not support the API extension. The default backup strategy for all SCC providers except ClearCase and Perforce is to issue an SccDiff command. For ClearCase, the backup strategy compares the PBL object with the local project path object file. For Perforce versions earlier than 2008, the strategy for comparing differences first examines the SCC_STATUS_OUTOFDATE bit returned by the SccQueryInfo command and then compares the PBL object with the local project page object file.



You can override the default comparison strategy by adding the SccDiffStrategy parameter to the initialization file and assigning a value to it from Table 3-9. You can also add the values together to use multiple comparison strategies, as long as those strategies are supported by your SCC provider.



Perforce 2008 and later



The Perforce client behavior changed with the 2008 version.  SccQueryInfo does not return information about added objects to a Perforce 2008 depot. Therefore, for this SCC client, it is best to perform full synchronizations from the Perforce management utility or by using the OrcaScript scc refresh target  command. You also need to add the SccDiffStrategy parameter to the initialization file and set its bit value to 08 to make sure that the source code in the target PBLs match the object files in the local project path.



Table 3-9: SccDiffStrategy values for object comparison strategies











Parameter value





Object comparison strategy









02 (default)





Compares by version number (SCCQueryInfoEx) — not supported by all vendors









04





Examines the SCC_STATUS_OUTOFDATE bit from the SccQueryInfo command to determine which objects are out of sync









08





Compares the source code in the target PBLs with object files in the local project path









16





Uses the SccDiff command in quiet mode











 



 



Regards,

  1. Helpful
  1. Van Sederburg
  2. Saturday, 30 December 2017 01:14 AM UTC
Thanks. I've seen all that, and none if it seems to apply when the first check in works, and the second check in fails.  Every file check in works, I just have to restart powerbuilder in between like I mentioned.  I don't see what applies to that scenario.

  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.