How to Run MOBITEK STK API v. 6.5 Sample Code in Visual Studio 2015

  1. Install STK API v. 6.5 using “Setup-MOBITEK STK API version 6.5.exe”.
  2. Run “SIM Tool Kit.vb”.
  3. Click OK in prompt dialog to migrate the project to Visual Studio 2015 project.
  4. After migration completed, the migration report will appear.
  5. In Visual Studio 2015, select “x86” in the dropdown, click “Start” to run the project.
  6. If prompted the below dialog, select “Disable Just My Code and Continue”.
  7. To test the project, insert any number in “COM Port” text box and click “Connect to STK Modem” button. If the text appear in the text box and there is no runtime error, then the project is running fine.

Email Inspector Is Unable To Determine Whether an E-mail Address is Valid Or Not

Conclusion: Email Inspector  is unable to determine whether an e-mail address is valid or not.

TROUBLESHOOT SOLVED?
  • Increase timeout to maximum in Email Inspector
  • Increase timeout to maximum in Account Manager
No. All emails tested with Email Inspector go to “Other” tab.

Result was:

  • Other = 4

By right:

  • Verified = 3
  • Failed = 1 (1234567@mobitek,my should be under “Failed”)

  • Disable antivirus and firewall
No. All emails tested with Email Inspector go to “Other” tab.

Result was:

  • Other = 4

By right:

  • Verified = 3
  • Failed = 1 (1234567@mobitek,my should be under “Failed”)

  • Open port 587 and 2525 in firewall
  • Allow GroupMail 5 program in firewall
  • Test Email Inspector with port 587 and 2525
No. All emails tested with Email Inspector go to “Other” tab.

Result was:

  • Other = 4

By right:

  • Verified = 3
  • Failed = 1 (1234567@mobitek,my should be under “Failed”)

  • Default setting (Connections: 3)
  • Reduce connections = 1
  • Open port 25 in firewall
No. All emails tested with Email Inspector go to “Other” tab.

Result was:

  • Other = 4

By right:

  • Verified = 3
  • Failed = 1 (1234567@mobitek,my should be under “Failed”)

 

How to Solve USR-TCP Cannot Detect MOBITEK S80 Modem on LAN

  1. Use “Advance IP Scanner”

    to scan for a free IP address on LAN. The free IP address will be assigned to MOBITEK S80 Modem later.
  2. Disconnect MOBITEK S80 Modem from LAN.
  3. Directly connect MOBITEK S80 Modem with laptop/PC through LAN port/cable.
  4. Run “USR-TCP”,

    Assign a new IP address that does not belong to any device in “Advanced IP Scanner” (step 1) to the MOBITEK S80 Modem . As well as configure the “Default Gateway”, “Subnet Mask”, etc.
  5. Disconnect MOBITEK S80 Modem from laptop/PC.
  6. Re-connect MOBITEK S80 Modem to LAN through router/switch.
  7. Run “USR-TCP” to detect MOBITEK S80 Modem.
  8. If  “USR-TCP” still cannot detect MOBITEK S80 Modem  then use web browser, enter the IP address of MOBITEK S80 Modem into the address bar. If a web administration page is displayed then the connection is successfully established.

    Web Administration Page of MOBITEK S80 Modem

  9. Use “USR-VCOM”

    to add a COM port that links the COM port with the IP address of S80.
  10. Use “Hyper Terminal”, connect via COM port, run “hyper terminal test”. If test is passed then S80 is working on the LAN.

UCanAccess Driver Locks MS Access Database of SMS Engine — Basic Edition

Problem: SMS stuck in the “oubox” table and cannot be send out by SMS Engine — Basic Edition v. 5 and SMS Engine — Basic Edition v. 6.

Solution: Java application should use ODBC instead of UCanAccess to connect to “SMSEngine5.mdb” (version 5) or “SMSEngineVBNET.mdb” (version 6). Somehow, UCanAccess locks the records inserted into “outbox” table, preventing SMS Engine from retrieving those records and preventing SMS being send out.

 

TROUBLE SHOOTING #1: JDBC:UCanAccess

  • DB Tool: DBeaver
  • Driver: UCanAccess
    UCanAccess-01
  • JDBC URL: jdbc:ucanaccess://C:\Program Files\MOBITEK\SMS Engine – Basic Edition\Database\SMSEngine5.mdb
  • Result:
    • All records inserted into “SMSEngine5.mdb” using DBeaver were stuck in “Outbox” table even after the DBeaver has been closed.
      UCanAccess-02
    • All SMS are stuck in “Outbox” table (SentStatus = P) after the SMS Engine has been restarted.
    • After restarting the SMS Engine a few times, all SMS finally can send out.

 

TROUBLE SHOOTING #2: JDBC:ODBC

  • DB Tool: DBeaver
  • Driver: ODBC
    UCanAccess-03
  • JDBC URL: jdbc:odbc:SMSEngine5
  • Result:
    • All SMS inserted into “SMSEngine5.mdb” can be send out without any problem while DBeaver is still running.
      UCanAccess-04
    • Note: the delivery status depends on the TELCO response — may be late or no status at all.

How to Connect to MS Access Database using JDBC:ODBC Connection

  1. Depending on whether your Java application is 32-bit or 64-bit, choose the correct ODBC Data Source Administrator (64bit or 32 bit) to create the Data Source Name. Otherwise, the connection cannot be established.
      • If your Java application is 64-bit then use ODBC Data Source Administrator 64-bit
      • If your Java application is 32-bit then use ODBC Data Source Administrator 32-bit
  2. Open ODBC Data Source Administrator (make sure the correct version is used).
  3. Select “System DSN” tab. Click “Add”.
    JDBC-01
  4. In this example, we are connecting to MS Access database, in “Create New Data Source”, select “Microsoft Access Driver (*.mdb, *.accdb)” in the list. Click “Finish”.
    JDBC-02
  5. In “ODBC Microsoft Access Setup”, enter any “Data Source Name”. This name will be used in DBeaver later. So remember it. After that click “Select…” button.
    JDBC-03
  6. Now you have to locate your MS Access file. In this example we use “SMSEngine5.mdb”. Click “OK”.
    JDBC-04
  7. Example of the Data Source Name created.
    JDBC-05
  8. Open DBeaver (or any other database management tool). Click on “Database -> New Database Connection”
    JDBC-06
  9. In “Connect to database”, select “ODBC” in the list. Click “Next”
    JDBC-07
  10. Insert “Database/Schema” name the same like you created earlier in ODBC Data Source Administrator. Click “Test Connection” to test the ODBC connection.
    JDBC-08
  11. If everything is setup right, you will get the below message. Click “Finish”
    JDBC-09

How to Solve Hue Games Crash After Launching

Problem: after stating the game Hue, music can be heard, but the screen stays blank (black colour). Then the game crashes. Log file shows:-

 

D3D shader create error for vertex shader [0x887a0005]
D3D shader create error for pixel shader [0x887a0005]
WARNING: Shader Unsupported: ‘Custom/CutoutShader’ – Pass ” has no vertex shader
WARNING: Shader Unsupported: ‘Custom/CutoutShader’ – Setting to default shader.
d3d11: failed to create 2D texture id=94 w=128 h=256 mips=1 d3dfmt=77 [887a0005]
d3d11: failed to create 2D texture view id=94 [80070057]

D3D shader create error for vertex shader [0x887a0005]
D3D shader create error for pixel shader [0x887a0005]
WARNING: Shader Unsupported: ‘Custom/Unlit Single Color’ – Pass ” has no vertex shader
WARNING: Shader Unsupported: ‘Custom/Unlit Single Color’ – Setting to default shader.
d3d11: failed to create 2D texture id=104 w=128 h=128 mips=8 d3dfmt=77 [887a0005]
d3d11: failed to create 2D texture view id=104 [80070057]
D3D shader create error for vertex shader [0x887a0005]
D3D shader create error for pixel shader [0x887a0005]
WARNING: Shader Unsupported: ‘Unlit/Transparent’ – Pass ” has no vertex shader
WARNING: Shader Unsupported: ‘Unlit/Transparent’ – Setting to default shader.
d3d11: failed to create 2D texture id=106 w=204 h=343 mips=1 d3dfmt=28 [887a0005]
d3d11: failed to create 2D texture view id=106 [80070057]

d3d11: attempt to lock null vertex buffer
d3d11: attempt to lock null index buffer
Unloading 6 Unused Serialized files (Serialized files now loaded: 0)
d3d11: failed to create 2D texture id=562 w=40 h=91 mips=1 d3dfmt=28 [887a0005]
d3d11: failed to create 2D texture view id=562 [80070057]
D3D shader create error for vertex shader [0x887a0005]
D3D shader create error for pixel shader [0x887a0005]
WARNING: Shader Unsupported: ‘Mobile/Particles/Alpha Blended’ – Pass ” has no vertex shader
WARNING: Shader Unsupported: ‘Mobile/Particles/Alpha Blended’ – Setting to default shader.
d3d11: failed to create 2D texture id=564 w=2048 h=2048 mips=1 d3dfmt=77 [887a0005]
d3d11: failed to create 2D texture view id=564 [80070057]
d3d11: failed to create 2D texture id=566 w=2048 h=2048 mips=1 d3dfmt=77 [887a0005]
d3d11: failed to create 2D texture view id=566 [80070057]
UnloadTime: 2.002275 ms

Unloading 10 unused Assets to reduce memory usage. Loaded Objects now: 21250.
Total: 28.089157 ms (FindLiveObjects: 0.868564 ms CreateObjectMapping: 0.596149 ms MarkObjects: 26.562433 ms DeleteObjects: 0.061582 ms)

d3d11: failed to create vertex buffer of size 12240 [0x887A0005]
d3d11: failed to create index buffer of size 612 [0x887A0005]
d3d11: attempt to lock null vertex buffer
d3d11: attempt to lock null index buffer
d3d11: failed to create vertex buffer of size 5280 [0x887A0005]
d3d11: failed to create index buffer of size 264 [0x887A0005]
d3d11: attempt to lock null vertex buffer
d3d11: attempt to lock null index buffer
d3d11: failed to create vertex buffer of size 4194304 [0x887A0005]
d3d11: failed to create vertex buffer of size 4194304 [0x887A0005]
Crash!!!

Solution: run the game using “Integrated graphics” instead of “NVIDA” by setting it in NVIDIA Control Panel -> Manage 3D Settings.

 

How to Solve the Problem of Epic Games Launcher Unable to Start

Problem:  after upgrading NVIDA driver from v. 445.87 to v. 456.38, Epic Games Laucher cannot be opened or started, it keeps opening then close, mouse could be blinking.

 

Solution:  right click on the Epic Games Launcher -> Run with graphics processor -> Integrated graphics

 

Other Solutions:-

  1. Epic Games Launcher displays incorrectly or appears blank
  2. Epic Games Launcher Not Working? Here Are 4 Solutions

 

 

How to Solve “ERROR [HYT00][Microsoft][ODBC SQL Server Driver]Query timeout expired”

PROBLEM: ERROR [HYT00][Microsoft][ODBC SQL Server Driver]Query timeout expired

POSSIBLE CAUSE: Database too large, too many records in tables

SOLUTION: Create an index for “outbox” table:-

  1. Stop the SMS Engine service of MobiGATE
  2. Using SQL Management Studio, go to “indexes” of “dbo.outbox”, right-clickm select “New Index…”
  3. For “index name”, enter “To solve query timeout”
  4. Select “Nonclustered”
  5. Click “Add” to add 2 columns “datetime_queued” and “sent_status” (refer to red boxes below):
  6. Click “OK” button and a new index will be created:
  7. Start the SMS Engine service of MobiGATE
  8. Observe in log if this eror message still appear “ERROR [HYT00][Microsoft][ODBC SQL Server Driver]Query timeout expired
  9. If it appears again, please fill-in the table below:
    QUESTIONS ANSWERS (provide screen shot if available) REMARK
    Date of index created (as shown above)
    Take a screen capture of the SQL Management Studio showing:

    1. the new index
    2. the columns in the new index
    Date of the error message “ERROR [HYT00][Microsoft][ODBC SQL Server Driver]Query timeout expired” first appear
    Total number of records in “outbox” table when the error first appears
    Please send us:

    • the log file of the date when the error appear
    • “config.xml” file

How to Write a SQL Statement that Sums All Records of Different Items in Each Group as “Total Balance”

Problem: In “Stock Card” table, it records the stock movement, “In” and “Out”  of each item (ITEM ID).  There are different items that belongs to same group (GROUP).  And there are many groups (GROUP).

 

STOCK CARD TABLE
GROUP ITEM ID IN OUT
EKONOR EKONOR-1 20
EKONOR EKONOR-1 10
EKONOR EKONOR-2 40
EKONOR EKONOR-2 10
EKONOR EKONOR-2 20
SAGA SAGA-1 10
SAGA SAGA-1 5
SAGA SAGA-1 5
SAGA SAGA-2 10
SAGA SAGA-2 10
SAGA SAGA-2 20

How to get the sum (TOTAL BALANCE) of each group as below?

GROUP TOTAL RECORDS TOTAL BALANCE
EKONOR 5 20
SAGA 6 10

 

Solution: using this SQL statement

SELECT `Group`,
(SELECT COUNT(Stock_Description.`Group`) FROM Stock_Description WHERE Stock_Description.`Group` = sd.`Group`) As `TOTAL RECORDS`,
(SELECT SUM(COALESCE(a.`IN`,0) – COALESCE(a.`OUT`,0)) FROM Stock_Card a WHERE a.Item_ID LIKE CONCAT(sd.`Group, ‘%’) AND a.Balance IS NOT NULL) AS `TOTAL BALANCE` FROM Stock_Description sd GROUP BY `Group`;

 

SELECT SUM(COALESCE(a.`IN`,0) – COALESCE(a.`OUT`,0)) FROM Stock_Card a WHERE a.Item_ID LIKE CONCAT(sd.`Group`, ‘%’) AND a.Balance IS NOT NULL) AS Total_Balance

the above SQL statement will display  a “TOTAL BALANCE” of each “GROUP” by:-

  • summing all “In” records of “EKONOR” minus the sum of all “Out” of EKONOR”
    • (20 + 40) – (10 + 10 + 20)
    • = 20
  • summing all “In” records of “SAGA” minus the sum of all “Out” of  “SAGA”
    • (10 + 5 + 10 + 10) – (5 + 20)
    • = 10

 

SELECT COUNT(Stock_Description.`Group`) FROM Stock_Description WHERE Stock_Description.`Group` = sd.`Group`) As `TOTAL RECORDS`

the above SQL statement will display  a “TOTAL RECORDS” of each “GROUP” by:-

  • summing all records in “EKONOR” group
  • summing all records in “SAGA” group

Source:-

How to Block Spammer or Hacker Who Always Changed the Sender’s E-Mail Address?

Spammer or hacker will always change the e-mail address to avoid being flag as spam based on the sender’s e-mail address.

 

Solution: block the SMTP domain of spammer or hacker by using “Global Email Filters” tool in cPanel

  1. Goto “Global Email Filters”
  2. Click “Edit” on “Block E-mail Based on Header”
  3. Click on “+” button to add a new entry
  4. Change to “Any Header” and enter the header information that will be blocked by mail server and will be diverted to spam folder
  5. Finally, click “Save” button